Am Di., 6. Sept. 2022 um 21:46 Uhr schrieb Wolfgang Corcoran-Mathe
<[email protected]>:
>
> On 2022-09-05 08:30 +0200, Marc Nieper-Wißkirchen wrote:
> > With just the small language, we can't write sensible ad-hoc polymorphic
> > procedures that handle promises differently.
>
> I agree, although SRFIs can, of course, specify procedures that can’t
> be portably implemented.

Sure. But in this case, it is not the problem that an implementation
would have to be non-portable but that there cannot be an
implementation, portable or not, on every Scheme implementation that
is allowed by R7RS. (As I tried to explain earlier, even access to
something like "%true-promise" would not help.)

In the context of the large language and its foundations, we should
have a discussion on whether we should tighten the specification of
promises in the small language.  At the moment, implementations have a
lot of creative leeways but this does not help portable code.  I would
suggest either making promises a disjoint type or making them
indistinguishable from ordinary values, which would mean implicit
forcing and probably a Haskell-like kernel for Scheme.

Reply via email to