Hello all,

After some discussion with Eli Barzilay on the SRFI-45 mailing list [1],
I've come to believe it's a mistake to extend it in a suboptimal way.
'eager' should have the same API as 'delay'.  I'd rather do the job
right, even if that means moving it to a different module.

I think we should back out this change to SRFI-45.  The only thing I
think we should keep is the addition of 'promise?' to the list of
exports (as is done in Racket).

What do other people think?

      Mark

[1] http://srfi.schemers.org/srfi-45/post-mail-archive/maillist.html

--- Begin Message ---
Hi Eli,

Eli Barzilay <e...@barzilay.org> writes:

> 30 minutes ago, Mark H Weaver wrote:
>> 
>> I agree that it's unfortunate to destroy the symmetry between
>> 'eager' and 'delay', but I see no way to support multiple values
>> without either destroying that symmetry or breaking compatibility
>> with SRFI-45.
>
> IMO, having a good, uniform API is *far* more important than keeping
> `eager' a function. [...]
>
>> If you can suggest a better way to add support for multiple values
>> that is compatible with SRFI-45, I'd be glad to hear it.
>
> Write a new short srfi which will say "same as srfi-45, except that
> `eager' is a macro", then add multiple values.  Seriously.

Having thought more on this, I've come to agree with you.  It's a
mistake to bend over backwards to remain compatible with SRFI-45.
It's more important to promote the best API we can come up with.

Users wouldn't be able to rely on SRFI-45 having my proposed extension
anyway.  I think we will abandon this proposed extension for Guile, and
leave SRFI-45 alone.

Maybe it _is_ time for a new SRFI.

     Thanks,
       Mark


--- End Message ---

Reply via email to