I reconsidered my answer and came to the conclusion, that my previous example
implementation has a drawback. Whenever you create a new Set, the functions
are added as anonymous (aka numbered) functions. So if
you create two sets, all functions are parsed two times and defined two
times.

The better solution is to define the functions once and just add the
function-references to the Set implementation.