Arg.Ty
type 'a witness
=
..
exception
Not_equal
type (_, _) eq
|
Eq : ('a, 'a) eq
module type Ty = sig ... end
type 'a id
= (module Ty with type t = 'a)
val new_id : unit -> (module Ty with type t = 'a)
val eq : a b. 'a id -> 'b id -> ('a, 'b) eq