functor
  (M : sig
         type 'a t
         val compare : 'Comparator.Make1.t -> 'Comparator.Make1.t -> int
         val sexp_of_t : 'Comparator.Make1.t -> Sexplib.Sexp.t
       end->
  sig type comparator val comparator : ('M.t, comparator) t_ end