Module Ocaml_typing.Mtype

val scrape_alias : Env.t -> Types.module_type -> Types.module_type
val reduce_lazy : Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option
val reduce_alias_lazy : Env.t -> Subst.Lazy.module_type -> Subst.Lazy.module_type option
val reduce : Env.t -> Types.module_type -> Types.module_type option
val scrape_for_functor_arg : Env.t -> Types.module_type -> Types.module_type
val scrape_for_type_of : remove_aliases:bool -> Env.t -> Types.module_type -> Types.module_type
val freshen : scope:int -> Types.module_type -> Types.module_type
val strengthen_lazy : aliasable:bool -> Subst.Lazy.module_type -> Path.t -> Subst.Lazy.module_type
val strengthen : aliasable:bool -> Types.module_type -> Path.t -> Types.module_type
val strengthen_lazy_decl : aliasable:bool -> Subst.Lazy.module_declaration -> Path.t -> Subst.Lazy.module_declaration
val strengthen_decl : aliasable:bool -> Types.module_declaration -> Path.t -> Types.module_declaration
val find_type_of_module : strengthen:bool -> aliasable:bool -> Env.t -> Path.t -> Types.module_type
val expand_to : Env.t -> Types.signature -> Path.t list -> Types.signature
val sig_make_manifest : Types.signature -> Types.signature
val nondep_supertype : Env.t -> Ident.t list -> Types.module_type -> Types.module_type
val nondep_sig : Env.t -> Ident.t list -> Types.signature -> Types.signature
val nondep_sig_item : Env.t -> Ident.t list -> Types.signature_item -> Types.signature_item
val no_code_needed : Env.t -> Types.module_type -> bool
val no_code_needed_sig : Env.t -> Types.signature -> bool
val enrich_modtype : Env.t -> Path.t -> Types.module_type -> Types.module_type
val type_paths : Env.t -> Path.t -> Types.module_type -> Path.t list
val contains_type : Env.t -> Types.module_type -> bool
val lower_nongen : int -> Types.module_type -> unit