Module Subst.Lazy

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