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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII X-Google-Thread: 103376,63a41ccea0fc803a X-Google-Attributes: gid103376,public From: "Jean-Pierre Rosen" Subject: Re: Naming of Tagged Types and Associated Packages Date: 1998/07/30 Message-ID: <6ppc3q$8ju$1@platane.wanadoo.fr>#1/1 X-Deja-AN: 376277232 Content-Transfer-Encoding: 8bit References: <6pdhfo$1br$1@platane.wanadoo.fr> <6pi71p$n90$1@platane.wanadoo.fr> Content-Type: text/plain; charset="iso-8859-1" X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Organization: Adalog Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1998-07-30T00:00:00+00:00 List-Id: Robert I. Eachus a �crit dans le message ... >In article <6pi71p$n90$1@platane.wanadoo.fr> "Jean-Pierre Rosen" writes: > > > The trouble is that when you instantiate the generic, you can choose the > > name of the new package, but not the names of what is declared inside, and > > especially the type. I you want the type name to carry the useful > > information, the type name should change with each instantiation! With my > > notation, the package name carries the useful information, and therefore the > > same convention can be used for packages obtained by generic instantiations > > and for regular packages. > > Ah, but I always find myself doing the following: > > package Foobar is new Foo(....); > type Something_Meaningful is new Foobar.Object_Type with null; > -- and possibly > function My_Op(Param: Something_Meaningful) return Integer; > > So both the use clause issue, and the meaningful name issue go away. I discussed the drawbacks of this approach in my paper (http://perso.wanadoo.fr/adalog/naming9x.zip, now includes the ppt version thanks Ted Dennison). Basically: forces you to use empty extension aggregate. If the package declares other stuff (like secondary types) you must reexport it manually.