Something about the whole enum mask business seems off to me. I want to make this functionality that can be achieved with BitArrays and/or IntSets instead. I mean that's really what these are, right? The fact that they happen to fit into a particular integer size is really incidental. Maybe all we need for this is conversion from IntSets to Ints that fails if the max element is too high? In some sense, I want this just to be `Set{Enum}`.