Wes Groleau wrote: <<IF "the function and the local variables it declares"
were at the same level (they are not) then the compiler would have to flag
the declaration as an illegal re-declaration.>>

Interpretations of a prefix as the name of an enclosing construct always
take precedence over all other interpretations of the prefix.  See
RM95-4.1.3(4..5) or RM83-4.1.3(19) (which use different wording to say the
same thing).

-- Norman Cohen

P.S.--I agree with Wes that such a conflict never arises in a program with
well-chosen names, so this issue is not of general interest, and certainly
not of interest to Ada novices.