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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,735c710b5e547bad X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.224.138.146 with SMTP id a18mr11588180qau.6.1343789455965; Tue, 31 Jul 2012 19:50:55 -0700 (PDT) Received: by 10.66.89.196 with SMTP id bq4mr3468904pab.26.1343789455885; Tue, 31 Jul 2012 19:50:55 -0700 (PDT) Path: a15ni13561295qag.0!nntp.google.com!r1no8397304qas.0!news-out.google.com!g9ni9635140pbo.0!nntp.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nrc-news.nrc.ca!goblin1!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Ada 2005 puzzle Date: Sat, 28 Jul 2012 20:21:58 +0200 Organization: cbb software GmbH Message-ID: References: <1arp60wtxes8h$.1qs6bt732ztgp.dlg@40tude.net> <1agfifqlayl3y.1bp09z5i37ewk$.dlg@40tude.net> <1nnq1oprn6h4f.1s5myl3oupdds$.dlg@40tude.net> <57ed1bca-b503-492c-a3b1-012369484e93@googlegroups.com> <1gt5njrqzprkt$.1f9deqqcwyyuq.dlg@40tude.net> <1g6eygs4wyie8.x1sl1gap1gec$.dlg@40tude.net> <16ft4hb6xzphu.z8f7urnw3xu0.dlg@40tude.net> <50128262$0$6554$9b4e6d93@newsspool4.arcor-online.net> <1x51ztmeo2hll.jtsosl0kzzhi.dlg@40tude.net> <2dyx4yaenfz9$.ldh4ahlp469f.dlg@40tude.net> <50ba6370-c055-478a-af3d-3e31ae11da99@googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: 9A8bJrx4NhDLcSmbrb6AdA.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2012-07-28T20:21:58+02:00 List-Id: On Sat, 28 Jul 2012 09:59:27 -0700 (PDT), AdaMagica wrote: > On Saturday, July 28, 2012 12:37:21 PM UTC+2, Dmitry A. Kazakov wrote: >>> I see what you mean. But since no objects of abstract types may exist and >>> somehow you have to provide the private components of derived nonprivate >>> objects, the proper Ada way (as intended by ARG, I guess) is child >>> packages. >> >> That changes nothing. An abstract type remains abstract. You can derive a >> non-abstract (and thus necessarily broken) type from it and expose the >> latter. > > I don't understand what you mean (for non-limited types; I see the problem for limited ones). > Why is it necessarily broken? It has private and visible parts, so what? You derive from the type for the sole purpose of being able to write a function returning an instance of. But the initial reason of being abstract was to prevent very existence of such functions because the type is non-functional, abstract. (The concept of construction per a function is unsound independently on the limited/non-limited issue with regard to abstract types. An abstract type may require initialization, but shall have no objects. Even if the "limited" kludge worked, it would remain broken.) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de