Functions over lists
First, we provide sets as lists which are (morally) without redundancy.
The specs are proved under the additional condition of no redundancy.
And the functions returning sets are proved to preserve this invariant.
The set operations.
Encapsulation
Now, in order to really provide a functor implementing
S, we
need to encapsulate everything into a type of lists without redundancy.