From mboxrd@z Thu Jan 1 00:00:00 1970 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lawrence D'Oliveiro Newsgroups: comp.lang.ada Subject: Re: Reduction expressions Date: Tue, 20 Aug 2024 23:30:54 -0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 21 Aug 2024 01:30:55 +0200 (CEST) Injection-Info: dont-email.me; posting-host="b7054728ccecf746f3a261c5985019ab"; logging-data="3739374"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Ud8moVEuGLw0yl0+OPcot" User-Agent: Pan/0.159 (Vovchansk; ) Cancel-Lock: sha1:ZQRLqlB2B4p+xGS7SoJarsTk7k4= Xref: news.eternal-september.org comp.lang.ada:66308 List-Id: On Tue, 20 Aug 2024 22:23:27 +0100, Simon Wright wrote: > "Randy Brukardt" writes: > >> Accum_Subtype (we changed the name since it is a subtype, not a type; > > Amazing how a person (I) can have used Ada for ~40 years and still be > hard put to it to describe the difference, at least in a case like this > one, where the ARG members clearly see meanings that leave me lukewarm > if not cold. Maybe "the heart of twilight"? I thought the difference was obvious. “subtype” is the C equivalent of “typedef”, just giving a new name to an existing type. So subtype A is B; (where A and B are simple identifiers) is valid, whereas type A is B; is not: a “type” declaration always creates a new type: you have to write at least type A is new B; and now you have two types with different names that are structurally the same, but not compatible.