Module Types.Make_wrapped
Parameters
Signature
type 'a wrapped = 'a Wrap.ttype value_description = {val_type : type_expr wrapped;val_modalities : Mode.Modality.t;(*The modalities on the value in a signature. It is
undefinedin several cases:- The value is not in a structure, so there is no modalities to talk about. For example, adding
let x = ... into the environment will haveval_modalitiesset toundefined. - The value was from a structure, but the original modalities have been applied and we have the real mode of the value. The original modalities shouldn't be looked again and is replaced by
undefined.
- The value is not in a structure, so there is no modalities to talk about. For example, adding
val_kind : value_kind;val_lpoly : Lpoly.t wrapped;(*Guaranteed
*)determinedfor all values visible outsidetype_let. May beto_generalizeduring intermediate stages of typing alet poly_binding. SeeLpoly.val_loc : Location.t;val_zero_alloc : Zero_alloc.t;val_attributes : Parsetree.attributes;val_uid : 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 * Aliasability.t
and signature = signature_item list wrappedand persistent_signature = signature * Mode.Staticity.Const.tand signature_item = | Sig_value of Ident.t * value_description * visibility| Sig_type of Ident.t * type_declaration * rec_status * visibility| Sig_typext of Ident.t * extension_constructor * ext_status * visibility| Sig_module of Ident.t * module_presence * module_declaration * rec_status * visibility| Sig_modtype of Ident.t * modtype_declaration * visibility| Sig_class of Ident.t * class_declaration * rec_status * visibility| Sig_class_type of Ident.t * class_type_declaration * rec_status * visibility| Sig_jkind of Ident.t * jkind_declaration * visibility
and 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 : Uid.t;
}and modtype_declaration = {mtd_type : module_type option;mtd_attributes : Parsetree.attributes;mtd_loc : Location.t;mtd_uid : Uid.t;
}val sort_of_signature_item : signature_item -> Jkind_types.Sort.t option