"Robert A Duff" wrote in message news:wcciqe26w5q.fsf@shell01.TheWorld.com... > "Hibou57 (Yannick Duch�ne)" writes: > >> Still the time for my two cents of the day : parameters of generic >> packages are not externally visible. I use to read in a few places on >> the web, this is so to preserve type privacy, but without any examples >> which could illustrate this view. >> >> What's the rational behind this ? > > I don't think there is any rationale. It makes perfect sense > for them to be visible, but they're not. I guess it was just > a minor mistake in Ada 83, and it's never been thought important > enough to fix in later versions. I don't see any way in > which this rule "preserves type privacy". I'm not sure that it "makes perfect sense" for them to be visible: it would surely increase the chance of name collisions outside of the package. Indeed, I find that it makes "perfect sense" for them not the visible: they are not part of the package that gets instantiated. That's clear from the syntax (they're outside the package). You're going to say that discriminants are outside of the type, too, but they're also visible. I can't argue with that beyond saying that that placement of discriminants is just awful; I place them in the wrong place and continually forget to include them in aggregates because they're well away from the other components. The main point is, it isn't clear either way: both choices aren't ideal. So one was chosen. And changing it surely would be incompatible, at the very least with use-visibility (if you start adding names, those names could become invisible if there are collisions) -- and it is insufficiently broken to take on that incompatibility. Randy.