module Comparator: sig
.. end
A Comparator.t is a type-indexed value that allows you to compare (and for generating
error messages, serialize) values of the type in question. 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, 'unique_id)
t = private {
}
type ('a, 'unique_id)
t_ = ('a, 'unique_id) t
module type Pre = sig
.. end
module type Pre_binable = sig
.. end
module type S = sig
.. end
module type S_binable = sig
.. end
module Make (
M
:
Pre
)
: S
with type t = M.t
module Make_binable (
M
:
Pre_binable
)
: S_binable
with type t = M.t
module type S1 = sig
.. end
module Poly: S1
with type 'a t = 'a
module S_to_S1 (
S
:
S
)
: S1
with type 'a t = S.t
with type comparator = S.comparator
module Make1 (
M
:
sig
type 'a
t
val compare : 'a t -> 'a t -> int
val sexp_of_t : 'a t -> Sexplib.Sexp.t
end
)
: S1
with type 'a t := 'a M.t