Since this implementation of `new-seal` is very inefficient, this package is also very inefficient.
The clan code itself is inefficient for many use cases—it is to illustrate abstraction.
With an efficient primitive `new-seal` a small modification to this set manipulation code would be efficient and also able to enforce abstraction and thus guarantee its inner logic.

Each invocation of `slg` returns a new clan of values.
Two clans are incompatible.
A clan is provided as a list of values:

- empty set: {},
- singleton function: x ↦ {x}
- union: x, y ↦ x∪y
- intersection x, y ↦ x∩y
- difference x, y ↦ x\y
- if a is the smallest element of x then: x ↦ (a, x\{a})

This code guards against corruption of its internal data structures.