Module Ocaml_typing.Includemod
module Error : sig ... endtype explanation = Ocaml_typing.Env.t * Ocaml_typing.Includemod.Error.allval kind_of_field_desc : Ocaml_typing.Includemod.field_desc -> stringval field_desc :
Ocaml_typing.Includemod.field_kind ->
Ocaml_typing.Ident.t ->
Ocaml_typing.Includemod.field_descmodule FieldMap :
Stdlib.Map.S with type key = Ocaml_typing.Includemod.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 :
Ocaml_typing.Types.signature_item ->
Ocaml_typing.Ident.t
* Ocaml_parsing.Location.t
* Ocaml_typing.Includemod.field_descval is_runtime_component : Ocaml_typing.Types.signature_item -> booltype modes = Ocaml_typing.Includecore.mmodesval modes_unit : Ocaml_typing.Includemod.modesThe modes used for compilation unit inclusion check
val modes_toplevel : Ocaml_typing.Includemod.modesThe modes used for top-level inclusion check, where top-level is similiar to a structure
val modes_functor_param :
Ocaml_typing.Typedtree.mode_with_locks ->
Ocaml_typing.Includemod.modesTakes the mode of functor argument, returns the modes suitable for modal inclusion check against the parameter.
val modes_functor_res : Ocaml_typing.Includemod.modesThe modes used for functor result inclusion check
val modtypes :
loc:Ocaml_parsing.Location.t ->
Ocaml_typing.Env.t ->
mark:bool ->
modes:Ocaml_typing.Includemod.modes ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Typedtree.module_coercionval modtypes_constraint :
shape:Ocaml_typing.Shape.t ->
loc:Ocaml_parsing.Location.t ->
Ocaml_typing.Env.t ->
mark:bool ->
modes:Ocaml_typing.Includemod.modes ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Typedtree.module_coercion * Ocaml_typing.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 ->
Ocaml_typing.Env.t ->
mark:bool ->
mmodes:Ocaml_typing.Includemod.modes ->
Ocaml_typing.Types.module_declaration ->
Ocaml_typing.Path.t ->
Ocaml_typing.Types.module_declaration ->
Ocaml_typing.Typedtree.module_coercionval check_functor_application :
loc:Ocaml_parsing.Location.t ->
Ocaml_typing.Env.t ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Path.t ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Includemod.explanation optioncheck_functor_application ~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 ->
Ocaml_typing.Env.t ->
Ocaml_typing.Ident.t ->
Ocaml_typing.Types.module_type ->
Ocaml_typing.Types.module_type ->
unitval signatures :
Ocaml_typing.Env.t ->
mark:bool ->
modes:Ocaml_typing.Includemod.modes ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Typedtree.module_coercionval include_functor_signatures :
Ocaml_typing.Env.t ->
mark:bool ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Types.signature ->
(Ocaml_typing.Ident.t * Ocaml_typing.Typedtree.module_coercion) listval check_implementation :
Ocaml_typing.Env.t ->
modes:Ocaml_typing.Includemod.modes ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Types.signature ->
unitCheck an implementation against an interface
val compunit :
Ocaml_typing.Env.t ->
mark:bool ->
string ->
Ocaml_typing.Types.signature ->
string ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Shape.t ->
Ocaml_typing.Typedtree.module_coercion * Ocaml_typing.Shape.tval compunit_as_argument :
Ocaml_typing.Env.t ->
string ->
Ocaml_typing.Types.signature ->
string ->
Ocaml_typing.Types.signature ->
Ocaml_typing.Typedtree.module_coercionval type_declarations :
loc:Ocaml_parsing.Location.t ->
Ocaml_typing.Env.t ->
mark:bool ->
Ocaml_typing.Ident.t ->
Ocaml_typing.Types.type_declaration ->
Ocaml_typing.Types.type_declaration ->
unitval print_coercion :
Stdlib.Format.formatter ->
Ocaml_typing.Typedtree.module_coercion ->
unittype pos = | Module of Ocaml_typing.Ident.t| Modtype of Ocaml_typing.Ident.t| Arg of Ocaml_typing.Types.functor_parameter| Body of Ocaml_typing.Types.functor_parameter
exception Error of Ocaml_typing.Includemod.explanationtype 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 : Ocaml_typing.Env.t;app_name : Ocaml_typing.Includemod.application_name;mty_f : Ocaml_typing.Types.module_type;args : (Ocaml_typing.Includemod.Error.functor_arg_descr * Ocaml_typing.Types.module_type * Ocaml_typing.Typedtree.mode_with_locks) list;
}val expand_module_alias :
strengthen:bool ->
Ocaml_typing.Env.t ->
Ocaml_typing.Path.t ->
Ocaml_typing.Types.module_typemodule Functor_inclusion_diff : sig ... endmodule Functor_app_diff : sig ... end