Includemodmodule Error : sig ... endval kind_of_field_desc : field_desc -> stringval field_desc : field_kind -> Ident.t -> field_descmodule FieldMap : Map.S with type key = field_descMap indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types.
val item_ident_name : Types.signature_item -> Ident.t * Location.t * field_descval is_runtime_component : Types.signature_item -> boolval modtypes :
loc:Location.t ->
Env.t ->
mark:bool ->
Types.module_type ->
Types.module_type ->
Typedtree.module_coercionval modtypes_consistency :
loc:Location.t ->
Env.t ->
Types.module_type ->
Types.module_type ->
unitval modtypes_with_shape :
shape:Shape.t ->
loc:Location.t ->
Env.t ->
mark:bool ->
Types.module_type ->
Types.module_type ->
Typedtree.module_coercion * Shape.tval strengthened_module_decl :
loc:Location.t ->
aliasable:bool ->
Env.t ->
mark:bool ->
Types.module_declaration ->
Path.t ->
Types.module_declaration ->
Typedtree.module_coercionval check_modtype_inclusion :
loc:Location.t ->
Env.t ->
Types.module_type ->
Path.t ->
Types.module_type ->
explanation optioncheck_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.
val check_modtype_equiv :
loc:Location.t ->
Env.t ->
Ident.t ->
Types.module_type ->
Types.module_type ->
unitval signatures :
Env.t ->
mark:bool ->
Types.signature ->
Types.signature ->
Typedtree.module_coercionval check_implementation : Env.t -> Types.signature -> Types.signature -> unitCheck an implementation against an interface
val compunit :
Env.t ->
mark:bool ->
string ->
Types.signature ->
string ->
Types.signature ->
Shape.t ->
Typedtree.module_coercion * Shape.tval type_declarations :
loc:Location.t ->
Env.t ->
mark:bool ->
Ident.t ->
Types.type_declaration ->
Types.type_declaration ->
unitval print_coercion :
Stdlib.Format.formatter ->
Typedtree.module_coercion ->
unittype symptom = | Missing_field of Ident.t * Location.t * string| Value_descriptions of Ident.t
* Types.value_description
* Types.value_description
* Includecore.value_mismatch| Type_declarations of Ident.t
* Types.type_declaration
* Types.type_declaration
* Includecore.type_mismatch| Extension_constructors of Ident.t
* Types.extension_constructor
* Types.extension_constructor
* Includecore.extension_constructor_mismatch| Module_types of Types.module_type * Types.module_type| Modtype_infos of Ident.t
* Types.modtype_declaration
* Types.modtype_declaration| Modtype_permutation of Types.module_type * Typedtree.module_coercion| Interface_mismatch of string * string| Class_type_declarations of Ident.t
* Types.class_type_declaration
* Types.class_type_declaration
* Ctype.class_match_failure list| Class_declarations of Ident.t
* Types.class_declaration
* Types.class_declaration
* Ctype.class_match_failure list| Unbound_module_path of Path.t| Invalid_module_alias of Path.ttype pos = | Module of Ident.t| Modtype of Ident.t| Arg of Types.functor_parameter| Body of Types.functor_parameterexception Error of explanationtype application_name = | Anonymous_functor(functor (_:sig end) -> struct end)(Int)
| Full_application_path of Longident.tF(G(X).P)(Y)
| Named_leftmost_functor of Longident.tF(struct end)...(...)
exception Apply_error of {loc : Location.t;env : Env.t;app_name : application_name;mty_f : Types.module_type;args : (Error.functor_arg_descr * Types.module_type) list;}val expand_module_alias :
strengthen:bool ->
Env.t ->
Path.t ->
Types.module_typemodule Functor_inclusion_diff : sig ... endmodule Functor_app_diff : sig ... end