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: border2.nntp.dca3.giganews.com!backlog4.nntp.dca3.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!goblin3!goblin2!goblin.stu.neva.ru!news.teledata-fn.de!newsfeed.arcor.de!newsspool2.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Fri, 23 May 2014 22:45:36 +0200 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: What is the difference of "with null record" and "with private"? References: <29a09fe5-72c0-40e0-bf72-632c4a13232e@googlegroups.com> In-Reply-To: <29a09fe5-72c0-40e0-bf72-632c4a13232e@googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <537fb370$0$6670$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 23 May 2014 22:45:36 CEST NNTP-Posting-Host: 1f32c31f.newsspool3.arcor-online.net X-Trace: DXC=49@_=c=GnJ; U`5g[@c]@J1McF=Q^Z^V384Fo<]lROoR18kFejV8e[X4agReVg=D=@FM6RMeO2 X-Complaints-To: usenet-abuse@arcor.de X-Original-Bytes: 2179 Xref: number.nntp.dca.giganews.com comp.lang.ada:186582 Date: 2014-05-23T22:45:36+02:00 List-Id: On 23/05/14 20:55, mockturtle wrote: > Well, as I see it, it is more a matter of visibility. "with private" acts pleasantly strong WRT visibility, in a technical sense, even "locally". Leaving out nested packages, still some of the types below must be rejected by the compiler: package Privacy is type T0 is tagged private; type T is tagged null record; type T1 is new T0 with private; type T1n is new T0 with null record; type Np is new T with private; type N is new T with null record; type Np0 is new T0 with private; type N0 is new T0 with null record; private type T0 is tagged null record; type T1 is new T0 with null record; type Np is new T with null record; type Np0 is new T0 with null record; end Privacy; All of these have to do with when a type's definition is finished, and the combination of placement and privacy control will affect later derivations, too.