Core.Comparator
Extends Base.Comparator
, providing a type-indexed value that allows you to compare values of that type.
type ('a, 'witness) t = private ('a, 'witness) Base.Comparator.t = {
compare : 'a -> 'a -> Base.Int.t;
sexp_of_t : 'a -> Base.Sexp.t;
}
type ('a, 'b) comparator = ('a, 'b) t
module type S = Base.Comparator.S
module type S1 = Base.Comparator.S1
module type S_fc = Base.Comparator.S_fc
val make :
compare:('a -> 'a -> int) ->
sexp_of_t:('a -> Base.Sexp.t) ->
(module S_fc
with type comparable_t = 'a)
make
creates a comparator witness for the given comparison. It is intended as a lightweight alternative to the functors below, to be used like so:
include (val Comparator.make ~compare ~sexp_of_t)
module Poly = Base.Comparator.Poly
module Module = Base.Comparator.Module
module S_to_S1 = Base.Comparator.S_to_S1
module Make = Base.Comparator.Make
Make
creates a comparator
value and its phantom comparator_witness
type for a nullary type.
module Make1 = Base.Comparator.Make1
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.
module type Derived = Base.Comparator.Derived
module Derived = Base.Comparator.Derived
Derived
creates a comparator
function that constructs a comparator for the type 'a t
given a comparator for the type 'a
.
module type Derived2 = Base.Comparator.Derived2
module Derived2 = Base.Comparator.Derived2
Derived2
creates a comparator
function that constructs a comparator for the type ('a, 'b) t
given comparators for the type 'a
and 'b
.
module type Derived_phantom = Base.Comparator.Derived_phantom
module Derived_phantom = Base.Comparator.Derived_phantom
Derived_phantom
creates a comparator
function that constructs a comparator for the type ('a, 'b) t
given a comparator for the type 'a
.
module type Derived2_phantom = Base.Comparator.Derived2_phantom
module Derived2_phantom = Base.Comparator.Derived2_phantom
Derived2_phantom
creates a comparator
function that constructs a comparator for the type ('a, 'b, 'c) t
given a comparator for the types 'a
and 'b
.
The following module types and functors may be used to define stable modules
module Stable : sig ... end