Up

module USet

: sig

Sets of Unicode characters, implemented as sets of intervals. The signature is mostly same to Set.S in stdlib

#
type t
#
val empty : t
#
val is_empty : t -> bool
#
val mem : UChar.t -> t -> bool
#
val add : UChar.t -> t -> t
#
val add_range : UChar.t -> UChar.t -> t -> t

add_range u1 u2 s adds the characters in the range u1 - u2 to s. The range is determined by the code point order.

#
val singleton : UChar.t -> t
#
val remove : UChar.t -> t -> t
#
val remove_range : UChar.t -> UChar.t -> t -> t

remove_range u1 u2 s removes the characters in the range u1 - u2 from s. The range is determined by the code point order.

#
val union : t -> t -> t
#
val inter : t -> t -> t
#
val diff : t -> t -> t
#
val compl : t -> t

compl s returns the compliment of s.

#
val compare : t -> t -> int
#
val equal : t -> t -> bool
#
val subset : t -> t -> bool
#
val from : UChar.t -> t -> t

from u s returns the set of elements of s whose code points are equal or greater than u.

#
val after : UChar.t -> t -> t

after u s returns the set of elements of s whose code points are greater than u.

#
val until : UChar.t -> t -> t

until u s returns the set of elements of s whose code points are equal or smaller than u.

#
val before : UChar.t -> t -> t

until u s returns the set of elements of s whose code points are smaller than u.

#
val iter : (UChar.t -> unit) -> t -> unit
#
val iter_range : (UChar.t -> UChar.t -> unit) -> t -> unit

iter_range proc s feeds the intervals contained in s to proc in increasing order. The intervals given to proc are always separated by the character not in s.

#
val fold : (UChar.t -> 'a -> 'a) -> t -> 'a -> 'a
#
val fold_range : (UChar.t -> UChar.t -> 'a -> 'a) -> t -> 'a -> 'a

fold_range f s x is equivalent to f u_i u_(i+1) (... (f u_3 u_4 (f u_1 u_2 x))) if s is consisted of the intervals u1-u2, u3-u4, ..., u_i-u_(i + 1) in increasing order. The intervals given to proc are always separated by the character not in s.

#
val for_all : (UChar.t -> bool) -> t -> bool
#
val exists : (UChar.t -> bool) -> t -> bool
#
val filter : (UChar.t -> bool) -> t -> t
#
val partition : (UChar.t -> bool) -> t -> t * t
#
val cardinal : t -> int
#
val elements : t -> UChar.t list
#
val ranges : t -> (UChar.t * UChar.t) list

The list of the intervals contained in the set. The returned intervals are always separated by the character not in s.

#
val min_elt : t -> UChar.t
#
val max_elt : t -> UChar.t
#
val choose : t -> UChar.t

Returns a element roughly in the middle of the set. It is not guaranteed to return the same element for the sets with the same elements

#
val uset_of_iset : ISet.t -> t
#
val iset_of_uset : t -> ISet.t
end