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