Module Typedecl

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_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 native_repr_kind =
  1. | Unboxed
  2. | Untagged
type reaching_type_path = reaching_type_step list
and reaching_type_step =
  1. | Expands_to of Types.type_expr * Types.type_expr
  2. | Contains of Types.type_expr * Types.type_expr
type error =
  1. | Repeated_parameter
  2. | Duplicate_constructor of string
  3. | Too_many_constructors
  4. | Duplicate_label of string
  5. | Recursive_abbrev of string * Env.t * reaching_type_path
  6. | Cycle_in_def of string * Env.t * reaching_type_path
  7. | Definition_mismatch of Types.type_expr * Env.t * Includecore.type_mismatch option
  8. | Constraint_failed of Env.t * Errortrace.unification_error
  9. | Inconsistent_constraint of Env.t * Errortrace.unification_error
  10. | Type_clash of Env.t * Errortrace.unification_error
  11. | Non_regular of {
    1. definition : Path.t;
    2. used_as : Types.type_expr;
    3. defined_as : Types.type_expr;
    4. reaching_path : reaching_type_path;
    }
  12. | Null_arity_external
  13. | Missing_native_external
  14. | Unbound_type_var of Types.type_expr * Types.type_declaration
  15. | Cannot_extend_private_type of Path.t
  16. | Not_extensible_type of Path.t
  17. | Extension_mismatch of Path.t * Env.t * Includecore.type_mismatch
  18. | Rebind_wrong_type of Longident.t * Env.t * Errortrace.unification_error
  19. | Rebind_mismatch of Longident.t * Path.t * Path.t
  20. | Rebind_private of Longident.t
  21. | Variance of Typedecl_variance.error
  22. | Unavailable_type_constructor of Path.t
  23. | Unbound_type_var_ext of Types.type_expr * Types.extension_constructor
  24. | Val_in_structure
  25. | Multiple_native_repr_attributes
  26. | Cannot_unbox_or_untag_type of native_repr_kind
  27. | Deep_unbox_or_untag_attribute of native_repr_kind
  28. | Immediacy of Typedecl_immediacy.error
  29. | Separability of Typedecl_separability.error
  30. | Bad_unboxed_attribute of string
  31. | Boxed_and_unboxed
  32. | Nonrec_gadt
  33. | Invalid_private_row_declaration of Types.type_expr
exception Error of Location.t * error
val report_error : Format.formatter -> error -> unit