FSet is a functional set-theoretic collections library. Functional means that all update operations return a new collection rather than modifying an existing one in place. Set-theoretic means that collections may be nested arbitrarily with no additional programmer effort; for instance, sets may contain sets, maps may be keyed by sets, etc.
The FSet home page explains why I chose functional semantics for FSet.
For more details, see the FSet project page.
There might be some useful information on the FSet CLiki page.