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