J.11 The Class Attribute of Untagged Incomplete Types
For the first subtype S of a type T declared
by an incomplete_type_declaration that is
not tagged, the following attribute is defined:
Denotes the first subtype of the incomplete class-wide
type rooted at T. The completion of T shall declare a tagged
type. Such an attribute reference shall occur in the same library unit
as the incomplete_type_declaration.
This must occur in the same unit to prevent children
from imposing requirements on their ancestor library units for deferred
Wording Changes from Ada 95
This clause is new. This feature was moved here
because the tagged incomplete type provides a better way to provide this
capability (it doesn't put requirements on the completion based on uses
that could be anywhere). Pity we didn't think of it in 1994.