From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: array from static predicate on enumerated type Date: Fri, 12 Mar 2021 23:41:53 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <89128f73-fcc5-4e57-8067-d09877ba0211n@googlegroups.com> NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.9.2 Xref: reader02.eternal-september.org comp.lang.ada:61506 List-Id: On 2021-03-12 21:49, Matt Borchers wrote: > Say, for example, I define a static predicate on a sub-type of an enumerated type, like: > > type LETTERS is ( A, B, C, D, E, F, G, H, I , J, K ); > > subtype CURVED is LETTERS > with Static_Predicate CURVED in B | C | D | G | J; Do not use this thing, because its semantic is basically a lie as it violates contracts of other operations of the type, like 'Succ. Using formal speak, CURVED is not substitutable for LETTERS in too many cases to be any useful. This applies to any arbitrary constraints you could impose using a predicate. They break things. Do not ever consider them as an option. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de