Comparator.Derived2Derived2 creates a comparator function that constructs a comparator for the type ('a, 'b) t given comparators for the type 'a and 'b.
module M : sig ... endval comparator : 
  ('a, 'cmp_a) comparator ->
  ('b, 'cmp_b) comparator ->
  (('a, 'b) M.t, ('cmp_a, 'cmp_b) comparator_witness) comparator