Includemod.Errortype core_diff('elt) = diff('elt, unit);type functor_arg_descr = | Anonymous| Named(Path.t)| Unit| Empty_structFor backward compatibility's sake, an empty struct can be implicitly converted to an unit module.
*/;type core_sigitem_symptom = | Value_descriptions(diff(Types.value_description, Includecore.value_mismatch))| Type_declarations(diff(Types.type_declaration, Includecore.type_mismatch))| Extension_constructors(diff(Types.extension_constructor,
Includecore.extension_constructor_mismatch))| Class_type_declarations(diff(Types.class_type_declaration,
list(Ctype.class_match_failure)))| Class_declarations(diff(Types.class_declaration,
list(Ctype.class_match_failure)));type core_module_type_symptom = | Not_an_alias| Not_an_identifier| Incompatible_aliases| Abstract_module_type| Unbound_module_path(Path.t);type module_type_symptom = | Mt_core(core_module_type_symptom)| Signature(signature_symptom)| Functor(functor_symptom)| Invalid_module_alias(Path.t)| After_alias_expansion(module_type_diff);and module_type_diff = diff(Types.module_type, module_type_symptom);and functor_param_symptom('arg, 'path) = | Incompatible_params('arg, Types.functor_parameter)| Mismatch(module_type_diff);and arg_functor_param_symptom =
functor_param_symptom(Types.functor_parameter, Ident.t);and functor_params_diff =
core_diff((list(Types.functor_parameter), Types.module_type));and signature_symptom = {env: Env.t,missings: list(Types.signature_item),incompatibles: list((Ident.t, sigitem_symptom)),oks: list((int, Typedtree.module_coercion)),leftovers: list((Types.signature_item as 'it, 'it, int)),signature items that could not be compared due to type divergence
*/};and sigitem_symptom = | Core(core_sigitem_symptom)| Module_type_declaration(diff(Types.modtype_declaration,
module_type_declaration_symptom))| Module_type(module_type_diff);and module_type_declaration_symptom = | Illegal_permutation(Typedtree.module_coercion)| Not_greater_than(module_type_diff)| Not_less_than(module_type_diff)| Incomparable of {less_than: module_type_diff,greater_than: module_type_diff,};type all = | In_Compilation_unit(diff(string, signature_symptom))| In_Signature(signature_symptom)| In_Module_type(module_type_diff)| In_Module_type_substitution(Ident.t, diff(Types.module_type,
module_type_declaration_symptom))| In_Type_declaration(Ident.t, core_sigitem_symptom)| In_Expansion(core_module_type_symptom);