We need to reconsider how to infer selector types, since there are a lot of possible combinations.
For example:
a#foo[bar="test"]
would have to be of type TypeId and AttributeExact, which won't work.
I'm thinking of doing some sort of bitflag system.
Will outline the idea after a bit of PoC:ing.