They are viewed as full-blown types by Ada, forming the class of discrete
types with integral types, so there are probably no semantics reasons why
ENUMERAL_TYPE nodes should have an INTEGER_TYPE node as their base type.
I'll add here that at one point I tried doing it the above way and it
didn't work well. The reason was basically that it didn't match the language
semantics well and it's sort of like having an MD file that doesn't exactly
match the machine but you think you can get away with it: lying to the
compiler rarely seems to be the right approach.