From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Record operations (Algebraic Data Types and printing)
Date: Wed, 10 Oct 2018 09:17:49 +0200
Date: 2018-10-10T09:17:49+02:00 [thread overview]
Message-ID: <ppk92s$4ht$1@gioia.aioe.org> (raw)
In-Reply-To: ppj9k1$cjr$1@franka.jacob-sparre.dk
On 2018-10-10 00:20, Randy Brukardt wrote:
> "Lucretia" <laguest9000@googlemail.com> wrote in message
> news:fb2af9cb-5317-4f1c-867c-8876212d303b@googlegroups.com...
>> Like what 'Read/'Write/'Input/'Output do, they call a defined subprogram in
>> the package. Surely, it's not that hard.
>
> What package? We're talking about (in part) the default representation for a
> type.
What have T'Image and T'Value to do with the type representation?
> Stream attributes use a complex concept called "availability" to deal
> with limited types, and they don't worry about privacy breakage at all.
Limited types should have no stream attributes at all. Same applied to
'Image/'Value. Returning limited object was a language design bug. This
cannot be fixed but it can be contained.
> 'Value would need something similar at a minimum, and the question of
> privacy breakage also would have to be addressed (a package would not want
> some outside force constructing values for its types; they might not meet
> the [implied] invariants and other assumptions
[...]
Safe default is to generate publicly visible 'Image and 'Value
propagating Use_Error for all types with private components. The package
provider could override them in the public part with bodies renaming the
private default implementations of which have full visibility.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2018-10-10 7:17 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-05 17:46 Record operations (Algebraic Data Types and printing) Henrik Härkönen
2018-10-05 17:58 ` AdaMagica
2018-10-05 18:11 ` Henrik Härkönen
2018-10-05 18:46 ` Niklas Holsti
2018-10-05 20:33 ` Henrik Härkönen
2018-10-06 5:38 ` J-P. Rosen
2018-10-06 7:08 ` Henrik Härkönen
2018-10-06 16:42 ` Lucretia
2018-10-08 23:08 ` Randy Brukardt
2018-10-09 1:12 ` Lucretia
2018-10-09 22:20 ` Randy Brukardt
2018-10-10 7:17 ` Dmitry A. Kazakov [this message]
2018-10-10 18:13 ` G. B.
2018-10-10 18:36 ` Dmitry A. Kazakov
2018-10-11 11:29 ` Björn Lundin
2018-10-11 14:45 ` Jacob Sparre Andersen
2018-10-11 18:34 ` Björn Lundin
2018-10-12 19:08 ` G. B.
2018-10-12 19:20 ` Randy Brukardt
2018-10-11 21:32 ` Randy Brukardt
2018-10-10 18:38 ` Shark8
2018-10-11 8:36 ` Dmitry A. Kazakov
2018-10-11 21:35 ` Randy Brukardt
2018-10-12 7:14 ` Dmitry A. Kazakov
2018-10-12 19:16 ` Randy Brukardt
2018-10-06 16:18 ` Jeffrey R. Carter
2018-10-06 17:19 ` Dmitry A. Kazakov
2018-10-08 23:03 ` Randy Brukardt
2018-10-09 6:22 ` Henrik Härkönen
2018-10-09 7:32 ` Paul Rubin
2018-10-09 7:38 ` Henrik Härkönen
2018-10-09 22:25 ` Randy Brukardt
2018-10-05 18:32 ` Niklas Holsti
2018-10-05 18:43 ` Henrik Härkönen
2018-10-05 19:41 ` Simon Wright
2018-10-06 6:17 ` Henrik Härkönen
2018-10-06 16:04 ` Stephen Leake
2018-10-06 16:56 ` Simon Wright
2018-10-08 6:44 ` briot.emmanuel
2018-10-08 14:09 ` Simon Wright
2018-10-08 14:21 ` Bill Findlay
2018-10-08 14:42 ` Simon Wright
2018-10-08 16:46 ` Bill Findlay
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox