package core_kernel
Module Core_kernel.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;
}include module type of Base.Comparator
with type ('a, 'witness) t := ('a, 'witness) t
type ('a, 'b) comparator = ('a, 'b) tmodule type S = Comparator.Smodule type S1 = Comparator.S1module type S_fc = Comparator.S_fcval 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.Polymodule S_to_S1 = Base.Comparator.S_to_S1module Make = Base.Comparator.MakeMake creates a comparator value and its phantom comparator_witness type for a nullary type.
module Make1 = Base.Comparator.Make1Make1 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 = Comparator.Derivedmodule Derived = Base.Comparator.DerivedDerived creates a comparator function that constructs a comparator for the type 'a t given a comparator for the type 'a.
module type Derived2 = Comparator.Derived2module Derived2 = Base.Comparator.Derived2Derived2 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 = Comparator.Derived_phantommodule Derived_phantom = Base.Comparator.Derived_phantomDerived_phantom creates a comparator function that constructs a comparator for the type ('a, 'b) t given a comparator for the type 'a.
The following module types and functors may be used to define stable modules
module Stable : sig ... end