For the sake of completeness, I've added an ADT.Set to 7.7. It is,
of course, less efficient than just using a mapping (or a multiset),
but it might make the code slightly more readable, and supports some
more stuff than ordinary mappings, such as x <= y to check if x is a
subset of y.