Typedecl
val transl_type_decl :
Env.t ->
Asttypes.rec_flag ->
Parsetree.type_declaration list ->
Typedtree.type_declaration list * Env.t
val transl_exception :
Env.t ->
Parsetree.extension_constructor ->
Typedtree.extension_constructor * Env.t
val transl_type_exception :
Env.t ->
Parsetree.type_exception ->
Typedtree.type_exception * Env.t
val transl_type_extension :
bool ->
Env.t ->
Location.t ->
Parsetree.type_extension ->
Typedtree.type_extension * Env.t
val transl_value_decl :
Env.t ->
Location.t ->
Parsetree.value_description ->
Typedtree.value_description * Env.t
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_declaration
val abstract_type_decl : injective:bool -> int -> Types.type_declaration
val approx_type_decl :
Parsetree.type_declaration list ->
(Ident.t * Types.type_declaration) list
val check_recmod_typedecl :
Env.t ->
Location.t ->
Ident.t list ->
Path.t ->
Types.type_declaration ->
unit
val check_coherence :
Env.t ->
Location.t ->
Path.t ->
Types.type_declaration ->
unit
val is_fixed_type : Parsetree.type_declaration -> bool
type reaching_type_path = reaching_type_step list
and reaching_type_step =
| Expands_to of Types.type_expr * Types.type_expr
| Contains of Types.type_expr * Types.type_expr
type error =
| Repeated_parameter
| Duplicate_constructor of string
| Too_many_constructors
| Duplicate_label of string
| Recursive_abbrev of string * Env.t * reaching_type_path
| Cycle_in_def of string * Env.t * 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 : 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 native_repr_kind
| Deep_unbox_or_untag_attribute of native_repr_kind
| Immediacy of Typedecl_immediacy.error
| Separability of Typedecl_separability.error
| Bad_unboxed_attribute of string
| Boxed_and_unboxed
| Nonrec_gadt
| Invalid_private_row_declaration of Types.type_expr
exception Error of Location.t * error
val report_error : Stdlib.Format.formatter -> error -> unit