sig
  type 'a t = 'a
  type comparator_witness
  val comparator : ('a t, comparator_witness) comparator
end