iter f s applies f in turn to all elements of s.
The elements of s are presented to f in increasing order
with respect to the ordering over the type of the elements.
filter_map f m combines the features of filter and
map. It calls calls f a0, f a1, f aN where a0,a1..aN
are the elements of m and returns the set of pairs bi
such as f ai = Some bi (when f returns None, the
corresponding element of m is discarded).
partition p s returns a pair of sets (s1, s2), where
s1 is the set of all the elements of s that satisfy the
predicate p, and s2 is the set of all the elements of
s that do not satisfy p.
split x s returns a triple (l, present, r), where
l is the set of elements of s that are
strictly less than x;
r is the set of elements of s that are
strictly greater than x;
present is false if s contains no element equal to x,
or true if s contains an element equal to x.