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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,99f33f51845a7793 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-11-14 08:06:38 PST Path: archiver1.google.com!news2.google.com!news1.google.com!sn-xit-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail From: "Matthew Heaney" Newsgroups: comp.lang.ada Subject: Re: 'withing' problem Date: Wed, 14 Nov 2001 11:10:02 -0500 Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <3be27344$0$227$ed9e5944@reading.news.pipex.net> <3BE42900.7590E899@adaworks.com> <3be65f4c$0$237$ed9e5944@reading.news.pipex.net> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 X-Complaints-To: newsabuse@supernews.com Xref: archiver1.google.com comp.lang.ada:16512 Date: 2001-11-14T11:10:02-05:00 List-Id: "Simon Wright" wrote in message news:x7vy9lbxih0.fsf@smaug.pushface.org... > I think that people looking at this model, perhaps for the purpose of > maintaining code written to implement it, need to have a very clear > idea of how the code will look. My philosophy is, if you want to have a good idea how the code will look, then you should look at the code... In any case, you should just ignore the forward declaration package, as it's just syntactic overhead that has no bearing on your model of the problem. > It's a Bad Thing if you need to make arbitrary decisions to break > cycles. You haven't explained why arbitrary decisions are bad, so this isn't a very cogent argument, which just reduces to "I don't like it, so it's bad." And besides, this solution is no different from other areas of the language. For example, if you want to declare a recursive pair of subprograms, then you have to forward declare one of them (and it's arbitrary which one): declare procedure Op1; procedure Op2 is begin Op1; end; procedure Op1 is begin Op2; end; begin null; end; > What would be even worse would be to have a framework code generator > that applied heuristics to break cycles. I imagine that it wouldn't > take much for such heuristics to make the opposite decision for minor > model changes (remember that very few models are as simple as this > one!) Let's concentrate on real problems. John Volan couldn't figure out how to declare two mutually dependent abstractions in two separate packages. I showed how to do this. Problem solved.