Melange_compiler_libs.Includemodtype mark = | Mark_bothMark definitions used from both arguments
*/| Mark_positiveMark definitions used from the positive (first) argument
*/| Mark_negativeMark definitions used from the negative (second) argument
*/| Mark_neitherDo not mark definitions used from either argument
*/;Type describing which arguments of an inclusion to consider as used for the usage warnings. Mark_both is the default.
module Error: { ... };let kind_of_field_desc: field_desc => string;let field_desc: field_kind => Ident.t => field_desc;Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types.
let item_ident_name: Types.signature_item => (Ident.t, Location.t, field_desc);let is_runtime_component: Types.signature_item => bool;let modtypes:
loc:Location.t =>
Env.t =>
mark:mark =>
Types.module_type =>
Types.module_type =>
Typedtree.module_coercion;let modtypes_with_shape:
shape:Shape.t =>
loc:Location.t =>
Env.t =>
mark:mark =>
Types.module_type =>
Types.module_type =>
(Typedtree.module_coercion, Shape.t);let strengthened_module_decl:
loc:Location.t =>
aliasable:bool =>
Env.t =>
mark:mark =>
Types.module_declaration =>
Path.t =>
Types.module_declaration =>
Typedtree.module_coercion;let check_modtype_inclusion:
loc:Location.t =>
Env.t =>
Types.module_type =>
Path.t =>
Types.module_type =>
option(explanation);check_modtype_inclusion ~loc env mty1 path1 mty2 checks that the functor application F(M) is well typed, where mty2 is the type of the argument of F and path1/mty1 is the path/unstrenghened type of M.
let check_modtype_equiv:
loc:Location.t =>
Env.t =>
Ident.t =>
Types.module_type =>
Types.module_type =>
unit;let signatures:
Env.t =>
mark:mark =>
Types.signature =>
Types.signature =>
Typedtree.module_coercion;let compunit:
Env.t =>
mark:mark =>
string =>
Types.signature =>
string =>
Types.signature =>
Shape.t =>
(Typedtree.module_coercion, Shape.t);let type_declarations:
loc:Location.t =>
Env.t =>
mark:mark =>
Ident.t =>
Types.type_declaration =>
Types.type_declaration =>
unit;let print_coercion:
Stdlib.Format.formatter =>
Typedtree.module_coercion =>
unit;type symptom = | Missing_field(Ident.t, Location.t, string)| Value_descriptions(Ident.t, Types.value_description, Types.value_description,
Includecore.value_mismatch)| Type_declarations(Ident.t, Types.type_declaration, Types.type_declaration,
Includecore.type_mismatch)| Extension_constructors(Ident.t, Types.extension_constructor, Types.extension_constructor,
Includecore.extension_constructor_mismatch)| Module_types(Types.module_type, Types.module_type)| Modtype_infos(Ident.t, Types.modtype_declaration, Types.modtype_declaration)| Modtype_permutation(Types.module_type, Typedtree.module_coercion)| Interface_mismatch(string, string)| Class_type_declarations(Ident.t, Types.class_type_declaration, Types.class_type_declaration,
list(Ctype.class_match_failure))| Class_declarations(Ident.t, Types.class_declaration, Types.class_declaration,
list(Ctype.class_match_failure))| Unbound_module_path(Path.t)| Invalid_module_alias(Path.t);type pos = | Module(Ident.t)| Modtype(Ident.t)| Arg(Types.functor_parameter)| Body(Types.functor_parameter);exception Error(explanation);exception Apply_error of {loc: Location.t,env: Env.t,app_name: application_name,mty_f: Types.module_type,args: list((Error.functor_arg_descr, Types.module_type)),};let expand_module_alias:
strengthen:bool =>
Env.t =>
Path.t =>
Types.module_type;module Functor_inclusion_diff: { ... };module Functor_app_diff: { ... };