Subst.Lazyinclude Types.Wrappedtype value_description = {val_type : Types.type_expr wrapped;val_modalities : Mode.Modality.t;The modalities on the value in a signature. It is undefined in several cases:
let x = ... in to the environment will have val_modalities set to undefined.undefined.val_kind : Types.value_kind;val_lpoly : Types.Lpoly.t wrapped;Guaranteed determined for all values visible outside type_let. May be to_generalize during intermediate stages of typing a let poly_ binding. See Lpoly.
val_loc : Location.t;val_zero_alloc : Zero_alloc.t;val_attributes : Parsetree.attributes;val_uid : Types.Uid.t;}type module_type = | Mty_ident of Path.t| Mty_signature of signature| Mty_functor of functor_parameter * module_type * Mode.Alloc.lr| Mty_alias of Path.t| Mty_strengthen of module_type * Path.t * Types.Aliasability.tand signature = signature_item list wrappedand persistent_signature = signature * Mode.Staticity.Const.tand signature_item = | Sig_value of Ident.t * value_description * Types.visibility| Sig_type of Ident.t
* Types.type_declaration
* Types.rec_status
* Types.visibility| Sig_typext of Ident.t
* Types.extension_constructor
* Types.ext_status
* Types.visibility| Sig_module of Ident.t
* Types.module_presence
* module_declaration
* Types.rec_status
* Types.visibility| Sig_modtype of Ident.t * modtype_declaration * Types.visibility| Sig_class of Ident.t
* Types.class_declaration
* Types.rec_status
* Types.visibility| Sig_class_type of Ident.t
* Types.class_type_declaration
* Types.rec_status
* Types.visibility| Sig_jkind of Ident.t * Types.jkind_declaration * Types.visibilityand module_declaration = {md_type : module_type;md_modalities : Mode.Modality.t;Similiar to val_modalities; see comments there.
md_attributes : Parsetree.attributes;md_loc : Location.t;md_uid : Types.Uid.t;}and modtype_declaration = {mtd_type : module_type option;mtd_attributes : Parsetree.attributes;mtd_loc : Location.t;mtd_uid : Types.Uid.t;}val sort_of_signature_item : signature_item -> Jkind_types.Sort.t optionval of_value : 'a -> 'a wrappedval of_module_decl : Types.module_declaration -> module_declarationval of_modtype : Types.module_type -> module_typeval of_modtype_decl : Types.modtype_declaration -> modtype_declarationval of_signature : Types.signature -> signatureval of_signature_item : Types.signature_item -> signature_itemval of_functor_parameter : Types.functor_parameter -> functor_parameterval of_value_description : Types.value_description -> value_descriptionval module_decl : scoping -> t -> module_declaration -> module_declarationval modtype : scoping -> t -> module_type -> module_typeval modtype_decl : scoping -> t -> modtype_declaration -> modtype_declarationval signature_item : scoping -> t -> signature_item -> signature_itemval value_description : t -> value_description -> value_descriptionval force_module_decl : module_declaration -> Types.module_declarationval force_modtype : module_type -> Types.module_typeval force_modtype_decl : modtype_declaration -> Types.modtype_declarationval force_signature : signature -> Types.signatureval force_signature_once : signature -> signature_item listval force_signature_item : signature_item -> Types.signature_itemval force_functor_parameter : functor_parameter -> Types.functor_parameterval force_value_description : value_description -> Types.value_descriptionval force_type_expr : Types.type_expr wrapped -> Types.type_exprval force_lpoly : Types.Lpoly.t wrapped -> Types.Lpoly.t