Module Melange_compiler_libs.Includecore

type position = Errortrace.position =
  1. | First
  2. | Second
;
type primitive_mismatch =
  1. | Name
  2. | Arity
  3. | No_alloc(position)
  4. | Native_name
  5. | Result_repr
  6. | Argument_repr(int)
;
type value_mismatch =
  1. | Primitive_mismatch(primitive_mismatch)
  2. | Not_a_primitive
  3. | Type(Errortrace.moregen_error)
;
exception Dont_match(value_mismatch);
type privacy_mismatch =
  1. | Private_type_abbreviation
  2. | Private_variant_type
  3. | Private_record_type
  4. | Private_extensible_variant
  5. | Private_row_type
;
type type_kind =
  1. | Kind_abstract
  2. | Kind_record
  3. | Kind_variant
  4. | Kind_open
;
type kind_mismatch = (type_kind, type_kind);
type label_mismatch =
  1. | Type(Errortrace.equality_error)
  2. | Mutability(position)
;
type record_change = Diffing_with_keys.change(Types.label_declaration as 'ld, 'ld, label_mismatch);
type record_mismatch =
  1. | Label_mismatch(list(record_change))
  2. | Unboxed_float_representation(position)
;
type constructor_mismatch =
  1. | Type(Errortrace.equality_error)
  2. | Arity
  3. | Inline_record(list(record_change))
  4. | Kind(position)
  5. | Explicit_return_type(position)
;
type extension_constructor_mismatch =
  1. | Constructor_privacy
  2. | Constructor_mismatch(Ident.t, Types.extension_constructor, Types.extension_constructor, constructor_mismatch)
;
type variant_change = Diffing_with_keys.change(Types.constructor_declaration as 'cd, 'cd, constructor_mismatch);
type private_variant_mismatch =
  1. | Only_outer_closed
  2. | Missing(position, string)
  3. | Presence(string)
  4. | Incompatible_types_for(string)
  5. | Types(Errortrace.equality_error)
;
type private_object_mismatch =
  1. | Missing(string)
  2. | Types(Errortrace.equality_error)
;
type type_mismatch =
  1. | Arity
  2. | Privacy(privacy_mismatch)
  3. | Kind(kind_mismatch)
  4. | Constraint(Errortrace.equality_error)
  5. | Manifest(Errortrace.equality_error)
  6. | Private_variant(Types.type_expr, Types.type_expr, private_variant_mismatch)
  7. | Private_object(Types.type_expr, Types.type_expr, private_object_mismatch)
  8. | Variance
  9. | Record_mismatch(record_mismatch)
  10. | Variant_mismatch(list(variant_change))
  11. | Unboxed_representation(position)
  12. | Immediate(Type_immediacy.Violation.t)
;
let type_declarations: ?equality:bool => loc:Location.t => Env.t => mark:bool => string => Types.type_declaration => Path.t => Types.type_declaration => option(type_mismatch);
let extension_constructors: loc:Location.t => Env.t => mark:bool => Ident.t => Types.extension_constructor => Types.extension_constructor => option(extension_constructor_mismatch);
let report_value_mismatch: string => string => Env.t => Stdlib.Format.formatter => value_mismatch => unit;
let report_type_mismatch: string => string => string => Env.t => Stdlib.Format.formatter => type_mismatch => unit;
let report_extension_constructor_mismatch: string => string => string => Env.t => Stdlib.Format.formatter => extension_constructor_mismatch => unit;