Subst.Lazy
type module_decl = {
mdl_type : modtype;
mdl_attributes : Parsetree.attributes;
mdl_loc : Location.t;
mdl_uid : Types.Uid.t;
}
and modtype =
| MtyL_ident of Path.t
| MtyL_signature of signature
| MtyL_functor of functor_parameter * modtype
| MtyL_alias of Path.t
and modtype_declaration = {
mtdl_type : modtype option;
mtdl_attributes : Parsetree.attributes;
mtdl_loc : Location.t;
mtdl_uid : Types.Uid.t;
}
and signature_item =
| SigL_value of Ident.t * Types.value_description * Types.visibility
| SigL_type of Ident.t
* Types.type_declaration
* Types.rec_status
* Types.visibility
| SigL_typext of Ident.t
* Types.extension_constructor
* Types.ext_status
* Types.visibility
| SigL_module of Ident.t
* Types.module_presence
* module_decl
* Types.rec_status
* Types.visibility
| SigL_modtype of Ident.t * modtype_declaration * Types.visibility
| SigL_class of Ident.t
* Types.class_declaration
* Types.rec_status
* Types.visibility
| SigL_class_type of Ident.t
* Types.class_type_declaration
* Types.rec_status
* Types.visibility
val of_module_decl : Types.module_declaration -> module_decl
val of_modtype : Types.module_type -> modtype
val of_modtype_decl : Types.modtype_declaration -> modtype_declaration
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_decl : scoping -> t -> modtype_declaration -> modtype_declaration
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_modtype_decl : modtype_declaration -> Types.modtype_declaration
val force_signature : signature -> Types.signature
val force_signature_once : signature -> signature_item list
val force_signature_item : signature_item -> Types.signature_item