[net.lang.ada] Why is "for i in 1..2*2 loop" illegal?

pearson%anchor.DECnet@LLL-ICDC.ARPA ("ANCHOR::PEARSON") (07/11/86)

Our VAX Ada compiler reads me the riot act when I say
	"for I in 1..2*2 loop".
(Specifically, it says:

	Base type {universal_integer} is not allowed for the
	discrete range of a constrained array definition,
	iteration rule, or index of an entry familys

	Default resolution to INTEGER does not apply because
	an expression is not a literal, named number or
	attribute; however, INTEGER assumed

A slightly fancier version of this compiler points me to LRM section
3.6.1 paragraph 2.)

    I imagine that this trivial expression (2*2) is somehow a representative
of a Bigger Problem, an understanding of which would allow me to see why
2*2 is unmanageably more difficult than 4. But I can't seem to grok the
big picture. If you have an explanation ( TARGET_IQ => 86 ), I'd appreciate
seeing it.

  -  Peter.
(pearson%anchor.decnet@lll-icdc.arpa)
------