Module Interval.Set

type 'a t
include Bin_prot.Binable.S1 with type 'a t := 'a t
type 'a t
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t
val bin_size_t : ('a'a t) Bin_prot.Size.sizer1
val bin_write_t : ('a'a t) Bin_prot.Write.writer1
val bin_read_t : ('a'a t) Bin_prot.Read.reader1
val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1
val bin_writer_t : ('a'a t) Bin_prot.Type_class.S1.writer
val bin_reader_t : ('a'a t) Bin_prot.Type_class.S1.reader
val bin_t : ('a'a t) Bin_prot.Type_class.S1.t
include Ppx_sexp_conv_lib.Sexpable.S1 with type 'a t := 'a t
type 'a t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
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 intervals whose lower and upper bounds are given by the pairs passed to the function. 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

contains_set returns true iff for every interval in the contained set, there exists an interval in the container set that is its superset.

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