functor (S : S) -> sig type 'a t = S.t type comparator_witness = S.comparator_witness val comparator : ('a t, comparator_witness) comparator end