module Comparator:sig
..end
One of the type parameters is a phantom parameter used to distinguish comparators
potentially built on different comparison functions. In particular, we want to
distinguish those using polymorphic compare and those using a monomorphic compare.
type ('a, 'witness)
t = private {
|
compare : |
|
sexp_of_t : |
type('a, 'b)
comparator =('a, 'b) t
module type S =sig
..end
module type S1 =sig
..end
module Poly:S1
with type 'a t = 'a
module S_to_S1:
Make
functors mint fresh types that are used as the phantom
comparator_witness
es.module Make:
module Make1: