Here they serve two important purposes -- subtype for naming, and type for Banishment. That doesn't mean that they can't be handled in a different manner, but in the interests of avoiding scope creep it seems preferable to leave them as-is for now unless you have a pressing reason to change them.
You can put mutable objects into sets so long as you override their __hash__ function (and possibly also __richcmp__), but I suspect this is considered bad style.
Can it be done using sets instead? Except you can't keep a mutable object in a set, so working from that direction doesn't work either.
Comment