module type T = sig
.. end
type
t
The set type
module Element: sig
.. end
A module defining the type of the element.
val nil : t
The empty set.
val empty : t -> bool
Use empty s
to test whether the set s
is the empty set.
val size : t -> int
Use size s
to compute the size of the set s
.
val member : Element.t -> t -> bool
Use member e s
to test whether the element e
is a member of the set
s
.
val singleton : Element.t -> t
Use singleton e
to compose a new set containing only the element e
.
val min : t -> Element.t
Use min s
to return the ordinally least element in the set s
.
Raises Not_found
if the set is empty.
val max : t -> Element.t
Use min s
to return the ordinally greatest element in the set s
.
Raises Not_found
if the set is empty.
val put : Element.t -> t -> t
Use put e s
to obtain a new set produced by inserting the element e
into the set s
. If s
already contains a member ordinally equal to
e
then it is replaced by e
in the set returned.
val clear : Element.t -> t -> t
Use clear e s
to obtain a new set produced by deleting the element
in the set s
ordinally equal to the element e
. If there is no such
element in the set, then the set is returned unchanged.
val union : t -> t -> t
Use union s1 s2
to obtain a new set from the union of the sets s1
and s2
. Elements of the new set belonging to the intersection are
copied from s2
.
val diff : t -> t -> t
Use diff s1 s2
to obtain a new set from the difference of the sets
s1
and s2
.
val intersect : t -> t -> t
Use interset s1 s2
to obtain a new set from the intersection of the
sets s1
and s2
. All the elements in the new set are copied from
s2
.
val compare : t -> t -> int
Use compare s1 s2
to compare the sequence of elements in the set
s1
and the sequence of elements in the set s2
in order of
increasing ordinality. Two sets are ordinally equal if the sequences
of their elements are ordinally equal.
val subset : t -> t -> bool
Use subset s1 s2
to test whether the set s1
is a subset of s2
.
val of_list : Element.t list -> t
Use of_list s
to iterate a list of elements and compose a new set by
inserting them in order.
val of_list_incr : Element.t list -> t
Use of_list_incr s
to compose the set with elements in the ordered
list s
. Runs in linear time if the list s
is known to be in
increasing order. Otherwise, there is an additional linear cost beyond
of_list s
.
val of_list_decr : Element.t list -> t
Use of_list_decr s
to compose the set with elements in the ordered
list s
. Runs in linear time if the list s
is known to be in
decreasing order. Otherwise, there is an additional linear cost beyond
of_list s
.
val of_seq : Element.t Cf_seq.t -> t
Use of_seq z
to evaluate a sequence of elements and compose a new set
by inserting them in order.
val of_seq_incr : Element.t Cf_seq.t -> t
Use of_seq_incr z
to compose the set with elements in the ordered
sequence z
. Runs in linear time if the sequence z
is known to be
in increasing order. Otherwise, there is an additional linear cost
beyond of_seq z
.
val of_seq_decr : Element.t Cf_seq.t -> t
Use of_seq_decr z
to compose the set with elements in the ordered
sequence z
. Runs in linear time if the sequence z
is known to be
in decreasing order. Otherwise, there is an additional linear cost
beyond of_seq z
.
val to_list_incr : t -> Element.t list
Use to_list_incr s
to produce the list of elements in the set s
in order of increasing ordinality.
val to_list_decr : t -> Element.t list
Use to_list_decr s
to produce the list of elements in the set s
in order of decreasing ordinality.
val to_seq_incr : t -> Element.t Cf_seq.t
Use to_seq_incr s
to produce the sequence of elements in the set s
in order of increasing ordinality.
val to_seq_decr : t -> Element.t Cf_seq.t
Use to_seq_decr s
to produce the sequence of elements in the set s
in order of decreasing ordinality.
val nearest_decr : Element.t -> t -> Element.t Cf_seq.t
Use nearest_decr k s
to obtain the key-value pair ordinally less than
or equal to the key k
in the set s
. Raises Not_found
if the set
is empty or all the keys are ordinally greater.
val nearest_incr : Element.t -> t -> Element.t Cf_seq.t
Use nearest_incr k s
to obtain the element ordinally greater
than or equal to the key k
in the set s
. Raises Not_found
if the
set is empty or all the keys are ordinally less.
val iterate : (Element.t -> unit) -> t -> unit
Use iterate f s
to apply the iterator function f
to every element
in the set s
in arbitrary order (not increasing or decreasing).
val predicate : (Element.t -> bool) -> t -> bool
Use predicate f s
to test whether all the elements in the set s
satisfy the predicate function f
, visiting the elements in an
arbitrary order (not increasing or decreasing) until f
returns
false
or all elements are tested.
val fold : ('a -> Element.t -> 'a) -> 'a -> t -> 'a
Use fold f a s
to fold the elements of the set s
into the folding
function f
with the initial state a
, by applying the elements in
an arbitrary order (not increasing or decreasing).
val filter : (Element.t -> bool) -> t -> t
Use filter f s
to produce a new set comprised of all the elements of
the set s
that satisfy the filtering function f
, applying the
elements in an arbitrary order (not increasing or decreasing).
val partition : (Element.t -> bool) -> t -> t * t
Use partition f s
to produce two new sets by applying the
partitioning function f
to every element in the set s
in an
arbitrary order (not increasing or decreasing). The first set returned
contains all the elements for which applying f
returns true
. The
second set returned contains all the elements for which applying f
returns false
.