Caseless compares and hashes strings ignoring case, so that for example
Caseless.equal "OCaml" "ocaml" and Caseless.("apple" < "Banana") are true, and
Caseless.Map, Caseless.Table lookup and Caseless.Set membership is
case-insensitive. Caseless also provides case insensitive is_suffix and is_prefix
functions, so that for example Caseless.is_suffix "OCaml" ~suffix:"AmL" and
Caseless.is_prefix "OCaml" ~prefix:"oc" are true.
include sig ... endval t_of_sexp : Base__.Sexplib.Sexp.t ‑> tval sexp_of_t : t ‑> Base__.Sexplib.Sexp.tval hash_fold_t : Base__.Ppx_hash_lib.Std.Hash.state ‑> t ‑> Base__.Ppx_hash_lib.Std.Hash.stateval hash : t ‑> Base__.Ppx_hash_lib.Std.Hash.hash_valueinclude Base.Comparable.S with type t := tinclude Base.Comparable_intf.Polymorphic_compareascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that
between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.tinclude Base.Comparator.S with type t := tval comparator : (t, comparator_witness) Base.Comparator.comparatorinclude Base.Comparable_intf.Validate with type t := tval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.check