Module Subst.Lazy

include Types.Wrapped
type 'a wrapped
type value_description = {
  1. val_type : Types.type_expr wrapped;
  2. val_modalities : Mode.Modality.t;
  3. val_kind : Types.value_kind;
  4. val_loc : Ocaml_parsing.Location.t;
  5. val_zero_alloc : Zero_alloc.t;
  6. val_attributes : Ocaml_parsing.Parsetree.attributes;
  7. val_uid : Ocaml_typing.Types.Uid.t;
}
type module_type =
  1. | Mty_ident of Path.t
  2. | Mty_signature of signature
  3. | Mty_functor of functor_parameter * module_type
  4. | Mty_alias of Path.t
  5. | Mty_strengthen of module_type * Path.t * Types.Aliasability.t
  6. | Mty_for_hole
and functor_parameter =
  1. | Unit
  2. | Named of Ident.t option * module_type
and signature = signature_item list wrapped
and module_declaration = {
  1. md_type : module_type;
  2. md_modalities : Mode.Modality.t;
  3. md_attributes : Ocaml_parsing.Parsetree.attributes;
  4. md_loc : Ocaml_parsing.Location.t;
  5. md_uid : Ocaml_typing.Types.Uid.t;
}
and modtype_declaration = {
  1. mtd_type : module_type option;
  2. mtd_attributes : Ocaml_parsing.Parsetree.attributes;
  3. mtd_loc : Ocaml_parsing.Location.t;
  4. mtd_uid : Ocaml_typing.Types.Uid.t;
}
val sort_of_signature_item : signature_item -> Jkind_types.Sort.t option
val of_value : 'a -> 'a wrapped
val of_lazy : 'a Lazy.t -> 'a wrapped
val substitute : t -> 'a wrapped -> 'a wrapped
val of_modtype : Types.module_type -> module_type
val of_signature : Types.signature -> signature
val of_signature_item : Types.signature_item -> signature_item
val of_functor_parameter : Types.functor_parameter -> functor_parameter
val of_value_description : Types.value_description -> value_description
val module_decl : scoping -> t -> module_declaration -> module_declaration
val modtype : scoping -> t -> module_type -> module_type
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 value_description : t -> value_description -> value_description
val force_module_decl : module_declaration -> Types.module_declaration
val force_modtype : module_type -> 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
val force_functor_parameter : functor_parameter -> Types.functor_parameter
val force_value_description : value_description -> Types.value_description
val force_type_expr : Types.type_expr wrapped -> Types.type_expr