sig
type 'a t
val create : name:string -> 'a Type_equal.Id.t
val hash : 'a Type_equal.Id.t -> int
val name : 'a Type_equal.Id.t -> string
val same : 'a Type_equal.Id.t -> 'b Type_equal.Id.t -> bool
val same_witness :
'a Type_equal.Id.t ->
'b Type_equal.Id.t -> ('a, 'b) Type_equal.equal Or_error.t
val same_witness_exn :
'a Type_equal.Id.t -> 'b Type_equal.Id.t -> ('a, 'b) Type_equal.equal
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Type_equal.Id.t -> Sexplib.Sexp.t
end