module Comparator: Comparator
type ('a, 'witness)
t = private {
|
compare : 'a -> 'a -> int ; |
|
sexp_of_t : 'a -> Sexplib.Sexp.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: functor (
S
:
S
) ->
S1
with type 'a t = S.t
with type comparator_witness = S.comparator_witness
The Make
functors mint fresh types that are used as the phantom
comparator_witness
es.
module Make: functor (
M
:
sig
type
t
val sexp_of_t : t -> Sexplib.Sexp.t
val compare : t -> t -> int
end
) ->
S
with type t := M.t
module Make1: functor (
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