in
const func boolean: (in baseType: aValue) in (in setType: aSet)

Set membership test.
Determine if aValue is a member of the set aSet.
 Returns:
 TRUE when aValue is a member of aSet, FALSE otherwise.
not in
const func boolean: (in baseType: aValue) not in (in setType: aSet)

Negated set membership test.
Determine if aValue is not a member of the set aSet.
 Returns:
 FALSE when aValue is a member of aSet, TRUE otherwise.
@:= [
const proc: (inout setType: aSet) @:= [ (in baseType: aValue) ] (in boolean: isElement)

Add or remove aValue to respectively from sSet.
Adding an existing value or remove a nonexisting value
leaves aSet unchanged.
 Raises:
 MEMORY_ERROR  When there is not enough memory.

const func setType: (in setType: set1)  (in setType: set2)

Union of two sets.
 Returns:
 the union of the two sets.
 Raises:
 MEMORY_ERROR  Not enough memory for the result.
&
const func setType: (in setType: set1) & (in setType: set2)

Intersection of two sets.
 Returns:
 the intersection of the two sets.
 Raises:
 MEMORY_ERROR  Not enough memory for the result.
><
const func setType: (in setType: set1) >< (in setType: set2)

Symmetric difference of two sets.
 Returns:
 the symmetric difference of the two sets.
 Raises:
 MEMORY_ERROR  Not enough memory for the result.

const func setType: (in setType: set1)  (in setType: set2)

Difference of two sets.
 Returns:
 the difference of the two sets.
 Raises:
 MEMORY_ERROR  Not enough memory for the result.
=
const func boolean: (in setType: set1) = (in setType: set2)

Check if two sets are equal.
 Returns:
 TRUE if the two sets are equal, FALSE otherwise.
<>
const func boolean: (in setType: set1) <> (in setType: set2)

Check if two sets are not equal.
 Returns:
 FALSE if the two sets are equal, TRUE otherwise.
<
const func boolean: (in setType: set1) < (in setType: set2)

Determine if set1 is a proper subset of set2.
set1 is a proper subset of set2 when
set1 <= set2 and set1 <> set2
holds.
 Returns:
 TRUE if set1 is a proper subset of set2, FALSE otherwise.
>
const func boolean: (in setType: set1) > (in setType: set2)

Determine if set1 is a proper superset of set2.
set1 is a proper superset of set2 when
set1 >= set2 and set1 <> set2
holds.
 Returns:
 TRUE if set1 is a proper superset of set2, FALSE otherwise.
<=
const func boolean: (in setType: set1) <= (in setType: set2)

Determine if set1 is a subset of set2.
set1 is a subset of set2 when no element X exists for which
X in set1 and X not in set2
holds.
 Returns:
 TRUE if set1 is a subset of set2, FALSE otherwise.
>=
const func boolean: (in setType: set1) >= (in setType: set2)

Determine if set1 is a superset of set2.
set1 is a superset of set2 when no element X exists for which
X in set2 and X not in set1
holds.
 Returns:
 TRUE if set1 is a superset of set2, FALSE otherwise.
card
const func integer: card (in setType: aSet)

Compute the cardinality of a set.
 Returns:
 the number of elements in aSet.
incl
const proc: incl (inout setType: aSet, in baseType: aValue)

Add aValue to the set aSet.
When aValue is already in aSet then aSet stays unchanged.
 Raises:
 MEMORY_ERROR  When there is not enough memory.
excl
const proc: excl (inout setType: aSet, in baseType: aValue)

Remove aValue from the set aSet.
When aValue is not element of aSet then aSet stays unchanged.
for
const proc: for (inout baseType: variable) range (in setType: aSet) do
(in proc: statements)
end for

Forloop where variable loops over the elements of the set aSet.
toArray
const func array baseType: toArray (in setType: aSet)

Obtain an array containing all the values in aSet.
 Returns:
 all the values from aSet.
str
const func string: str (in setType: aSet)

Convert a set to a string.
 Returns:
 the string result of the conversion.
 Raises:
 MEMORY_ERROR  Not enough memory to represent the result.