comp.lang.ada
 help / color / mirror / Atom feed
From: "G.B." <bauhaus@notmyhomepage.invalid>
Subject: Re: A function that cannot be called?
Date: Fri, 19 Oct 2018 21:57:39 +0200
Date: 2018-10-19T21:57:39+02:00	[thread overview]
Message-ID: <pqdcvk$9v5$1@dont-email.me> (raw)
In-Reply-To: <39dec2d6-7da5-4421-bb50-e4effd5a1439@googlegroups.com>

On 19.10.18 19:06, AdaMagica wrote:
> I do not really understand what all this is about, but:
> 
> package What is
>    type Void (<>) is private;
>    function Create (Params: Some_Type) return Void is abstract;
> private
>    type Void is null record;  -- no values
> end What;
> 
> Void has no values (hm, a null record is a value, but it's irrelevant, since no objects exist (there is none in the private part; a body is illegal); no objects can be created because Create is abstract, so in effect Create does not exist - so it cannot be called.


    41.     Consume (What.Create'Access);
                      |
         >>> prefix of "Access" attribute cannot be abstract

If the above package is placed in some private part, then, I think,
the language will guarantee that there is no way of introducing
objects anywhere.

 From the docs of Haskell's Data.Void:

"A Haskell 98 logically uninhabited data type,
  used to indicate that a given term should not exist."


One use of all this could be: any attempt at calling
the access-value passed to Consume will trigger some kind of
exceptional situation.
This implement works when Void is range 1..0 such that objects
can be declared, but is not available with either abstract
functions, as seen, or with a Void(<>) that cannot be constrained.


  reply	other threads:[~2018-10-19 19:57 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-18 12:14 A function that cannot be called? G.B.
2018-10-18 15:33 ` Stefan.Lucks
2018-10-18 20:21   ` G.B.
2018-10-18 20:57     ` Niklas Holsti
2018-10-19  7:15     ` Dmitry A. Kazakov
2018-10-19 13:55       ` G.B.
2018-10-19 15:31         ` Dmitry A. Kazakov
2018-10-18 17:03 ` AdaMagica
2018-10-18 19:36   ` G.B.
2018-10-18 21:30     ` Randy Brukardt
2018-10-19 14:00       ` G.B.
2018-10-19 15:39         ` Dmitry A. Kazakov
2018-10-20  1:34         ` Randy Brukardt
2018-10-20  9:14           ` G.B.
2018-10-20 11:13             ` Simon Wright
2018-10-20 14:11               ` Dmitry A. Kazakov
2018-10-21  9:25                 ` G.B.
2018-10-21  9:07               ` G.B.
2018-10-21  9:51                 ` Dmitry A. Kazakov
2018-10-21 10:57                 ` Niklas Holsti
2018-10-21 18:00                 ` Simon Wright
2018-10-19  8:48 ` AdaMagica
2018-10-19 11:15   ` G.B.
2018-10-19 17:06     ` AdaMagica
2018-10-19 19:57       ` G.B. [this message]
2018-10-19 22:06         ` Jere
2018-10-21 10:14           ` G.B.
2018-10-21 11:30             ` Egil H H
2018-10-23 11:45               ` G.B.
2018-10-23 14:35                 ` Jere
2018-10-23 14:57                   ` Dmitry A. Kazakov
2018-10-23 17:49                     ` G.B.
2018-10-23 19:25                       ` Dmitry A. Kazakov
2018-10-24  7:35                         ` G.B.
2018-10-24  8:14                           ` Dmitry A. Kazakov
2018-10-19 18:19 ` marciant
2018-10-19 18:22   ` marciant
2018-10-20  1:36     ` Randy Brukardt
2018-10-20  2:54       ` marciant
2018-10-19 20:25   ` Shark8
2018-10-19 23:28     ` marciant
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox