From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: If not Ada, what else... Date: Wed, 22 Jul 2015 08:01:03 +0100 Organization: A noiseless patient Spider Message-ID: References: <65061686-5c8f-433b-9b11-9e228298158e@googlegroups.com> <87k2u96jms.fsf@jester.gateway.sonic.net> <06f8a6f9-d219-4d40-b9ac-8518e93839bd@googlegroups.com> <87y4io63jy.fsf@jester.gateway.sonic.net> <7a29d3e9-d1bd-4f4a-b1a6-14d3e1a83a4d@googlegroups.com> <87mvz36fen.fsf@jester.gateway.sonic.net> <2215b44f-8a89-47c6-a4c4-52b74d2dac45@googlegroups.com> <9e492c82-868d-43d3-a18a-38274400e337@googlegroups.com> <40184feb-4053-4ac3-8eaa-c3bd9cd8a77c@googlegroups.com> <10272577-945f-4682-85bc-8ad47f3653ae@googlegroups.com> <87si8i81k2.fsf@atmarama.net> <1gsux33dqvjbp$.h0prf7p7g2vn.dlg@40tude.net> <5z82vu617j2h$.ls4rgwlc79r4.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="0b8a1d07de517ba95be21a60d7133ef5"; logging-data="27944"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX183fqzcVnWuivvVd/nOAXjkSrX8cPUXrAo=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (darwin) Cancel-Lock: sha1:Xcfv6i8NZ0847fOOly5tvu420wM= sha1:TwI9vkZmEjPl4Qd72deXTYmhsbM= Xref: news.eternal-september.org comp.lang.ada:26958 Date: 2015-07-22T08:01:03+01:00 List-Id: "Dmitry A. Kazakov" writes: > The object's private part should not appear in the package's public > part. It is a privacy breach. To the eye, yes, but not to using software. If I can look at the overall spec, I can see the private part anyway. More to the point, devolving the private part of a protected type to the private part of the enclosing package spec would resolve a lot of declaration ordering problems; types that could otherwise go in the private part of the package have to be in the public part. That's somewhat related to the need for the Implementation package in the Synchronized_Queues. There'd have been no need if we could have said something like protected type Queue ... is new Queue_Interfaces.Queue with ... end Queue with private; (rather a lot of 'with's there!)