Module Base.Ordering

Ordering is intended to make code that matches on the result of a comparison more concise and easier to read.

For example, instead of writing:

let r = compare x y in
if r < 0 then
  ...
else if r = 0 then
  ...
else
  ...

you could simply write:

match Ordering.of_int (compare x y) with
| Less -> ...
| Equal -> ...
| Greater -> ...
type t =
| Less
| Equal
| Greater
val compare : t -> t -> int
val all : t list
val hash_fold_t : Hash.state -> t -> Hash.state
val hash : t -> Hash.hash_value
include Sexpable.S with type t := t
type t
val t_of_sexp : Sexp.t -> t
val sexp_of_t : t -> Sexp.t
include Equal.S with type t := t
type t
val equal : t Equal.equal
val of_int : int -> t

of_int n is:

      Less     if n < 0
      Equal    if n = 0
      Greater  if n > 0
val to_int : t -> int

to_int t is:

      Less     -> -1
      Equal    -> 0
      Greater  -> 1

It can be useful when writing a comparison function to allow one to return Ordering.t values and transform them to ints later.

module Export : sig ... end