# Module type `Predicate.S`

`val empty : t`

The empty set.

`val full : t`

The set of all elements (of type

`elm`

).

`val is_empty : t -> bool`

Test whether a set is empty or not.

`val is_full : t -> bool`

Test whether a set contains the whole type or not.

`val add : elt -> t -> t`

`add x s`

returns a set containing all elements of`s`

, plus`x`

. If`x`

was already in`s`

, then`s`

is returned unchanged.

`val remove : elt -> t -> t`

`remove x s`

returns a set containing all elements of`s`

, except`x`

. If`x`

was not in`s`

, then`s`

is returned unchanged.