An ordered set is a container of variable length with two special requirements to the elements: all possible element values are comparable and build a total ordering; the elements of a set follow in a strictly ascending order, which also implies that all elements are different. This notion of a set is identical to that from the STL; the differences are primarily in the implementation details.

You can choose between two persistent set classes:

- Set
  a common-purpose class based on a balanced binary tree
- Bitset
  a special class optimized for representation of compact sets of non-negative integers

There are also various constructions representing sets of subsets, so called power sets:

- PowerSet
  a common-purpose solution based on the Set class
- FacetList
  a special class optimized for subsets of a compact set of non-negative integers
- Subsets_*
  enumerating all subsets of a fixed cardinality
- RandomSubset
  selecting a random subset