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