package merlin-lib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=82d648a4180d6d5aa3a083218e28bf197f4e9f147884de9302bb6811ad98b77f
sha512=e21c96db754a289462677e6985181902ddd90bab9e9cebbbb739d92d94b5aee7ef7a134da70ae384291d9bfaccfecd26d37b48f8d75c5d36b9eda18f6e5afd3d
doc/merlin-lib.ocaml_typing/Ocaml_typing/Includemod/index.html
Module Ocaml_typing.IncludemodSource
Map indexed by both field types and names. This avoids name clashes between different sorts of fields such as values and types.
val modtypes :
loc:Ocaml_parsing.Location.t ->
Env.t ->
mark:bool ->
Types.module_type ->
Types.module_type ->
Typedtree.module_coercionval modtypes_consistency :
loc:Ocaml_parsing.Location.t ->
Env.t ->
Types.module_type ->
Types.module_type ->
unitval modtypes_constraint :
shape:Shape.t ->
loc:Ocaml_parsing.Location.t ->
Env.t ->
mark:bool ->
Types.module_type ->
Types.module_type ->
Typedtree.module_coercion * Shape.tmodtypes_constraint ~shape ~loc env ~mark exp_modtype constraint_modtype checks that exp_modtype is a subtype of constraint_modtype, and returns the module coercion and the shape of the constrained module.
It also marks as used paired items in positive position in exp_modtype, and also paired items in negative position in constraint_modtype.
This marking in negative position allows to raise an unused item warning whenever an item in a functor parameter in constraint_modtype does not exist in exp_modtypes. This behaviour differs from the one in check_implementation and compunit which assumes that is not appropriate to raise warning about the interface file while typechecking the implementation file.
val strengthened_module_decl :
loc:Ocaml_parsing.Location.t ->
aliasable:bool ->
Env.t ->
mark:bool ->
Types.module_declaration ->
Path.t ->
Types.module_declaration ->
Typedtree.module_coercionval check_modtype_inclusion :
loc:Ocaml_parsing.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:Ocaml_parsing.Location.t ->
Env.t ->
Ident.t ->
Types.module_type ->
Types.module_type ->
unitval signatures :
Env.t ->
mark:bool ->
Types.signature ->
Types.signature ->
Typedtree.module_coercionCheck 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:Ocaml_parsing.Location.t ->
Env.t ->
mark:bool ->
Ident.t ->
Types.type_declaration ->
Types.type_declaration ->
unittype symptom = | Missing_field of Ident.t * Ocaml_parsing.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.t
type pos = | Module of Ident.t| Modtype of Ident.t| Arg of Types.functor_parameter| Body of Types.functor_parameter
type application_name = | Anonymous_functor(*
*)(functor (_:sig end) -> struct end)(Int)| Full_application_path of Ocaml_parsing.Longident.t(*
*)F(G(X).P)(Y)| Named_leftmost_functor of Ocaml_parsing.Longident.t(*
*)F(struct end)...(...)
exception Apply_error of {loc : Ocaml_parsing.Location.t;env : Env.t;app_name : application_name;mty_f : Types.module_type;args : (Error.functor_arg_descr * Types.module_type) list;
}