A set of unique values. The values can be any comparable type. This
includes Int, Float, Time, Char, String, and tuples or lists
of comparable types.
Insert, remove, and query operations all take O(log n) time. Set equality with
(==) is unreliable and should not be used.
Create a set with one value.
Insert a value into a set.
Remove a value from a set. If the value is not found, no changes are made.
Determine if a value is in a set.
Get the union of two sets. Keep all values.
Get the intersection of two sets. Keeps values that appear in both sets.
Get the difference between the first set and the second. Keeps values that do not appear in the second set.
Convert a set into a list.
Convert a list into a set, removing any duplicates.
Map a function onto a set, creating a new set with no duplicates.
Fold over the values in a set, in order from lowest to highest.
Fold over the values in a set, in order from highest to lowest.
Create a new set consisting only of elements which satisfy a predicate.
Create two new sets; the first consisting of elements which satisfy a predicate, the second consisting of elements which do not.
Create an empty set.