Andy Wingo <wi...@pobox.com> 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
appropriate.

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?

    Best,
     Mark

Reply via email to