Functions over lists
First, we provide sets as lists which are not necessarily sorted.
The specs are proved under the additional condition of being sorted.
And the functions returning sets are proved to preserve this invariant.
Encapsulation
Now, in order to really provide a functor implementing
S, we
need to encapsulate everything into a type of strictly ordered lists.