type 'a t
type 'cmp comparator_witness
val comparator : ('a, 'cmp) comparator ‑> ('a t, 'cmp comparator_witness) comparator