Module Subst.Lazy

type module_decl = {
  1. mdl_type : modtype;
  2. mdl_attributes : Parsetree.attributes;
  3. mdl_loc : Location.t;
  4. mdl_uid : Types.Uid.t;
}
and modtype =
  1. | MtyL_ident of Path.t
  2. | MtyL_signature of signature
  3. | MtyL_functor of functor_parameter * modtype
  4. | MtyL_alias of Path.t
and modtype_declaration = {
  1. mtdl_type : modtype option;
  2. mtdl_attributes : Parsetree.attributes;
  3. mtdl_loc : Location.t;
  4. mtdl_uid : Types.Uid.t;
}
and signature
and functor_parameter =
  1. | Unit
  2. | Named of Ident.t option * modtype
val of_module_decl : Types.module_declaration -> module_decl
val of_modtype : Types.module_type -> modtype
val of_signature : Types.signature -> signature
val of_signature_items : signature_item list -> signature
val of_signature_item : Types.signature_item -> signature_item
val module_decl : scoping -> t -> module_decl -> module_decl
val modtype : scoping -> t -> modtype -> modtype
val modtype_decl : scoping -> t -> modtype_declaration -> modtype_declaration
val signature : scoping -> t -> signature -> signature
val signature_item : scoping -> t -> signature_item -> signature_item
val force_module_decl : module_decl -> Types.module_declaration
val force_modtype : modtype -> Types.module_type
val force_signature : signature -> Types.signature
val force_signature_once : signature -> signature_item list
val force_signature_item : signature_item -> Types.signature_item