Module type Core__.Interval_intf.Gen_set

type 'a t
type 'a bound
type 'a interval

An interval set is a set of nonempty disjoint intervals.

val create : ('a bound * 'a bound) list ‑> 'a t

create creates an interval set containing values between each pair of values. It is an error if the pairs overlap.

val create_from_intervals : 'a interval list ‑> 'a t

create_from_intervals creates an interval set. Empty intervals are dropped. It is an error if the nonempty intervals are not disjoint.

val contains : 'a t ‑> 'a bound ‑> bool
val contains_set : container:'a t ‑> contained:'a t ‑> bool
val ubound_exn : 'a t ‑> 'a bound

The largest and smallest element of the interval set, respectively. Raises Invalid_argument on empty sets.

val lbound_exn : 'a t ‑> 'a bound
val ubound : 'a t ‑> 'a bound option
val lbound : 'a t ‑> 'a bound option