package core_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

This module extends the Base Maybe_bound module with compare functions in the form of As_lower_bound and As_upper_bound modules.

include module type of struct include Base.Maybe_bound end
type 'a t = 'a Base.Maybe_bound.t =
  1. | Incl of 'a
  2. | Excl of 'a
  3. | Unbounded

Used for specifying a bound (either upper or lower) as inclusive, exclusive, or unbounded.

include sig ... end
val t_of_sexp : (Base.Sexp.t -> 'a) -> Base.Sexp.t -> 'a t
val sexp_of_t : ('a -> Base.Sexp.t) -> 'a t -> Base.Sexp.t
val all : 'a list -> 'a t list
val map : 'a t -> f:('a -> 'b) -> 'b t
val is_lower_bound : 'a t -> of_:'a -> compare:('a -> 'a -> int) -> bool
val is_upper_bound : 'a t -> of_:'a -> compare:('a -> 'a -> int) -> bool
val interval_contains_exn : lower:'a t -> upper:'a t -> 'a -> compare:('a -> 'a -> int) -> bool

interval_contains_exn ~lower ~upper x ~compare raises if lower and upper are crossed.

val bounds_crossed : lower:'a t -> upper:'a t -> compare:('a -> 'a -> int) -> bool

bounds_crossed ~lower ~upper ~compare returns true if lower > upper.

It ignores whether the bounds are Incl or Excl.

type interval_comparison = Base.Maybe_bound.interval_comparison =
  1. | Below_lower_bound
  2. | In_range
  3. | Above_upper_bound
include sig ... end
val hash_fold_interval_comparison : Base.Hash.state -> interval_comparison -> Base.Hash.state
val hash_interval_comparison : interval_comparison -> Base.Hash.hash_value
val compare_interval_comparison : interval_comparison -> interval_comparison -> int
val interval_comparison_of_sexp : Base.Sexp.t -> interval_comparison
val sexp_of_interval_comparison : interval_comparison -> Base.Sexp.t
val compare_to_interval_exn : lower:'a t -> upper:'a t -> 'a -> compare:('a -> 'a -> int) -> interval_comparison

compare_to_interval_exn ~lower ~upper x ~compare raises if lower and upper are crossed.

module As_lower_bound : sig ... end

Compares t values as lower bounds, where Unbounded is lowest, Incl x < Excl x, and other cases of Incl and/or Excl are compared based on 'a. If As_lower_bound.compare compare t1 t2 <= 0 and is_lower_bound t2 ~of_:a ~compare, then is_lower_bound t1 ~of_:a ~compare. For example, for int As_lower_bound.t:

module As_upper_bound : sig ... end

Compares t values as upper bounds, where Unbounded is highest, Incl x > Excl x, and other cases of Incl and/or Excl are compared based on 'a. If As_upper_bound.compare compare_a t1 t2 <= 0 and is_upper_bound t1 ~of_:a ~compare, then is_upper_bound t2 ~of_:a ~compare. For example, for int As_upper_bound.t:

OCaml

Innovation. Community. Security.