Module Typedecl
val transl_type_decl :
Env.t ->
Asttypes.rec_flag ->
Parsetree.type_declaration list ->
Typedtree.type_declaration list * Env.t * Shape.t listval transl_exception :
Env.t ->
Parsetree.extension_constructor ->
Typedtree.extension_constructor * Env.t * Shape.tval transl_type_exception :
Env.t ->
Parsetree.type_exception ->
Typedtree.type_exception * Env.t * Shape.tval transl_type_extension :
bool ->
Env.t ->
Location.t ->
Parsetree.type_extension ->
Typedtree.type_extension * Env.t * Shape.t listtype transl_value_decl_modal = | Str_primitive(*A primitive in structure, in which case the modality syntax is treated as modes, and the returned value description will have empty modalities.
*)| Sig_value of Mode.Value.l * Mode.Modality.Const.t(*A value description in a signature, in which case we require the mode of the structure that the value lives in, as well as the default modalities of the signature.
*)
val transl_value_decl :
Env.t ->
modal:Typedecl.transl_value_decl_modal ->
why:Jkind.History.concrete_creation_reason ->
Location.t ->
Parsetree.value_description ->
Typedtree.value_description * Mode.Value.l * Env.tReturns a value description and the mode that the VD is based on, and a new environment that contains the VD at the mode.
val transl_with_constraint :
Ident.t ->
?fixed_row_path:Path.t ->
sig_env:Env.t ->
sig_decl:Types.type_declaration ->
outer_env:Env.t ->
Parsetree.type_declaration ->
Typedtree.type_declarationval transl_package_constraint :
loc:Location.t ->
Types.type_expr ->
Types.type_declarationval abstract_type_decl :
injective:bool ->
jkind:Types.jkind_l ->
params:Types.jkind_lr list ->
Types.type_declarationval approx_type_decl :
Parsetree.type_declaration list ->
(Ident.t * Types.type_declaration) listval check_recmod_typedecl :
Env.t ->
Location.t ->
Ident.t list ->
Path.t ->
Types.type_declaration ->
unitval check_coherence :
Env.t ->
Location.t ->
Path.t ->
Types.type_declaration ->
unitval is_fixed_type : Parsetree.type_declaration -> boolval mixed_block_element :
Env.t ->
Types.type_expr ->
_ Types.jkind ->
Types.mixed_block_elementtype reaching_type_path = Typedecl.reaching_type_step listand reaching_type_step = | Expands_to of Types.type_expr * Types.type_expr| Contains of Types.type_expr * Types.type_expr
module Mixed_product_kind : sig ... endval assert_mixed_product_support :
Warnings.loc ->
Typedecl.Mixed_product_kind.t ->
value_prefix_len:int ->
unittype mixed_product_violation = | Runtime_support_not_enabled of Typedecl.Mixed_product_kind.t| Extension_constructor| Value_prefix_too_long of {value_prefix_len : int;max_value_prefix_len : int;mixed_product_kind : Typedecl.Mixed_product_kind.t;
}| Insufficient_level of {required_layouts_level : Language_extension.maturity;mixed_product_kind : Typedecl.Mixed_product_kind.t;
}
type error = | Repeated_parameter| Duplicate_constructor of string| Too_many_constructors| Duplicate_label of string| Unboxed_mutable_label| Recursive_abbrev of string * Env.t * Typedecl.reaching_type_path| Cycle_in_def of string * Env.t * Typedecl.reaching_type_path| Unboxed_recursion of string * Env.t * Typedecl.reaching_type_path| Definition_mismatch of Types.type_expr * Env.t * Includecore.type_mismatch option| Constraint_failed of Env.t * Errortrace.unification_error| Inconsistent_constraint of Env.t * Errortrace.unification_error| Type_clash of Env.t * Errortrace.unification_error| Non_regular of {definition : Path.t;used_as : Types.type_expr;defined_as : Types.type_expr;reaching_path : Typedecl.reaching_type_path;
}| Null_arity_external| Missing_native_external| Unbound_type_var of Types.type_expr * Types.type_declaration| Cannot_extend_private_type of Path.t| Not_extensible_type of Path.t| Extension_mismatch of Path.t * Env.t * Includecore.type_mismatch| Rebind_wrong_type of Longident.t * Env.t * Errortrace.unification_error| Rebind_mismatch of Longident.t * Path.t * Path.t| Rebind_private of Longident.t| Variance of Typedecl_variance.error| Unbound_type_var_ext of Types.type_expr * Types.extension_constructor| Val_in_structure| Multiple_native_repr_attributes| Cannot_unbox_or_untag_type of Typedecl.native_repr_kind| Deep_unbox_or_untag_attribute of Typedecl.native_repr_kind| Jkind_mismatch_of_type of Types.type_expr * Jkind.Violation.t| Jkind_mismatch_of_path of Path.t * Jkind.Violation.t| Jkind_mismatch_due_to_bad_inference of Types.type_expr * Jkind.Violation.t * Typedecl.bad_jkind_inference_location| Jkind_sort of {kloc : Typedecl.jkind_sort_loc;typ : Types.type_expr;err : Jkind.Violation.t;
}| Jkind_empty_record| Non_representable_in_module of Jkind.Violation.t * Types.type_expr| Invalid_jkind_in_block of Types.type_expr * Jkind.Sort.Const.t * Typedecl.jkind_sort_loc| Illegal_mixed_product of Typedecl.mixed_product_violation| Separability of Typedecl_separability.error| Bad_unboxed_attribute of string| Boxed_and_unboxed| Nonrec_gadt| Invalid_private_row_declaration of Types.type_expr| Local_not_enabled| Unexpected_layout_any_in_primitive of string| Useless_layout_poly| Zero_alloc_attr_unsupported of Builtin_attributes.zero_alloc_attribute| Zero_alloc_attr_non_function| Zero_alloc_attr_bad_user_arity| Invalid_reexport of {}| Non_abstract_reexport of Path.t| Unsafe_mode_crossing_on_invalid_type_kind| Illegal_baggage of Types.jkind_l| No_unboxed_version of Path.t| Atomic_field_must_be_mutable of string| Constructor_submode_failed of Mode.Value.error| Atomic_field_in_mixed_block| Non_value_atomic_field
exception Error of Location.t * Typedecl.errorval report_error : Stdlib.Format.formatter -> Typedecl.error -> unit