(* TEST
 expect;
*)

(** Error messages for kind mismatches. *)

module T0 : sig type t end = struct type t = unit end
type t0 = T0.t = { a0 : int };;
[%%expect {|
module T0 : sig type t end
Line 4, characters 0-29:
4 | type t0 = T0.t = { a0 : int };;
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: This variant or record definition does not match that of type "T0.t"
       The original is abstract, but this is a record.
|}]

type t2a = ..
type t2b = t2a = A2 | B2;;
[%%expect {|
type t2a = ..
Line 2, characters 0-24:
2 | type t2b = t2a = A2 | B2;;
    ^^^^^^^^^^^^^^^^^^^^^^^^
Error: This variant or record definition does not match that of type "t2a"
       The original is an extensible variant, but this is a variant.
|}]
