Type.Id
type 'a t
val make : unit -> 'a t
val uid : 'a t -> int
val provably_equal : 'a t -> 'b t -> ('a, 'b) eq option