Mtype
val scrape : Env.t -> Types.module_type -> Types.module_type
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 :
aliasable:bool ->
Env.t ->
Types.module_type ->
Path.t ->
Types.module_type
val strengthen_decl :
aliasable:bool ->
Env.t ->
Types.module_declaration ->
Path.t ->
Types.module_declaration
val nondep_supertype :
Env.t ->
Ident.t list ->
Types.module_type ->
Types.module_type
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 enrich_typedecl :
Env.t ->
Path.t ->
Ident.t ->
Types.type_declaration ->
Types.type_declaration
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