An efficient implementation of set based on finite maps.
empty
:: Map a ()
Returns an empty set. |
singleton
:: a -> Map a ()
Construct a set with only a single element. |
fromList
:: Ord a => [a] -> Map a ()
Transforms a list into a set of its elements. |
null
:: Map a () -> Bool
Test for an empty set. |
insert
:: Ord a => a -> Map a () -> Map a ()
Inserts an element into a set if it is not already there. |
delete
:: Ord a => a -> Map a () -> Map a ()
Deletes an element from a set. |
deleteAll
:: Ord a => [a] -> Map a () -> Map a ()
Deletes a list of elements from a set. |
size
:: Map a () -> Int
Computes the size of two sets. |
member
:: Ord a => a -> Map a () -> Bool
Returns True
if an element is contained in a set.
|
difference
:: Ord a => Map a () -> Map a () -> Map a ()
Computes the difference of two sets. |
toList
:: Map a () -> [a]
Transforms a set into an ordered list of its elements. |
union
:: Ord a => Map a () -> Map a () -> Map a ()
Computes the union of two sets. |
The type of sets of elements.
Type synonym: Set a = Map a ()
Returns an empty set.
|
Construct a set with only a single element.
|
Inserts an element into a set if it is not already there. |
Computes the size of two sets.
|
Returns
|
Computes the difference of two sets. |