"Jean-Pierre Rosen" wrote in message news:aa6l0f.5ji.ln@hunter.axlog.fr... > Maciej Sobczak a �crit : > > > It is not possible to declare this type in the private part of the > > protected type (why?), > Because a protected type is like a record, not like a package. > You can only declare protected operations and components inside it. Which only begs the question, why can't you declare a type inside of a record? Sometimes it would be convenient to do so: type Foobar is record A : array (1..10) of Integer; -- Illegal! end record; The *real* answer to the question is that Ada does not allow intertwined type declarations. That's because those bring up all kinds of weird visibility issues for the predefined operators of the inner type. We don't want operators being defined in the middle of a record type! You might note that anonymous access types are allowed in these contexts, but that is OK because they don't have any operators of their own (thus no complications deciding where they are defined). Randy.