(* TEST *) type t = .. module M = struct type t += A type t += B of int end type t += C type t += D of int * string let () = assert (Obj.Extension_constructor.of_val M.A == [%extension_constructor M.A]); assert (Obj.Extension_constructor.of_val (M.B 42) == [%extension_constructor M.B]); assert (Obj.Extension_constructor.of_val C == [%extension_constructor C]); assert (Obj.Extension_constructor.of_val (D (42, "")) == [%extension_constructor D]) let () = print_endline "OK"