[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: r6rs define-record-type is unhygienic

From: Mark H Weaver
Subject: Re: r6rs define-record-type is unhygienic
Date: Fri, 17 Jun 2011 14:35:46 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

Andy Wingo <address@hidden> wrote on bug-guile:
>> +         (let loop ((_fields *unspecified*)
>> +                    (_parent *unspecified*)
> I realize this was in the original code, but better to use some other
> value to indicate a non-initialized value.  In the future *unspecified*
> will be the same as (values).

I don't think *unspecified* should become (values).  In the scheme
reports and elsewhere, "an unspecified value" generally means a single
value which could be anything.  This is a different concept than
(values), which is no value at all, more like a (void) return type in C.
Unfortunately, in Guile these two concepts have been conflated, and
*unspecified* is returned in many places where (values) would be more

It would be very misleading to use the name *unspecified* to refer to
(values), when it is widely understood to mean something different.

IMHO, we should leave *unspecified* alone, and instead change selected
uses of *unspecified* to (values).

What do you think?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]