Andy Wingo <[email protected]> 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