Make1 creates a comparator value and its phantom comparator_witness type for a
unary type. It takes a compare and sexp_of_t that have
non-standard types because the Comparator.t type doesn't allow passing in
additional values for the type argument.
M : sig ... endval comparator : ('a t, comparator_witness) comparator