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