Right, but two facts remain:
1. An enum member has type duality: It is of the enum's type, but it *IS* also of the base type.
2. This has been this way for a LONG LONG time. Changing it now would break any code that actually does take enums into account, or any code that is currently legally operating on an enum.

@jmdavis and I have tried to discuss this issue before, but the truth is that very little people care. There *is* an existing bug with `isAggregateType` that fails on tuples of aggregates, but other than that, I think it all works pretty well.

In any case, I don't think this pull is the correct place to debate on such on a change :/