A set of unique values. The values can be any type, and the comparison is
done using a function compare : value -> comparable.
Insert, remove, and query operations all take O(log n) time.
Create an empty set
Create a set with one value
Insert a new value into a set
Remove a value from a set
Determine if a set is empty
Determine if a value is in a set
Determine the number of elements 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
Represents a set of unique values together with the compare function