sig
  type 'a t
  val fresh : unit -> 'Record.Polid.t
  type ('a, 'b) equal =
      Equal : ('a, 'a) Record.Polid.equal
    | Different : ('a, 'b) Record.Polid.equal
  val equal :
    'Record.Polid.t -> 'Record.Polid.t -> ('a, 'b) Record.Polid.equal
  val to_int : 'Record.Polid.t -> int
  val is_equal : 'Record.Polid.t -> 'Record.Polid.t -> bool
end