Artyom Poptsov <poptsov.art...@gmail.com> writes: > Hello Guilers, > > it seems that currently there's no way to 'read' back an '*unspecified*' > value, but in some cases such a feature might be handy. Here's the > description of the problem; a patch is attached as well.
Just my opinion: I generally see code relying on the existence of the *unspecified* value (let alone any specific semantics of it) to be sub-optimal. Guile documents the value, so I guess there's some guarantees regarding its existence and semantics, but I think it's best not to rely on it anyway, so that #1 Guile can decide to do something else in the future where it currently returns *unspecified*, #2 code has clearer semantics, #3 code can be ported more easily to other Scheme platforms (say GNU Kawa), and possibly more such benefits. In that vein, I actually find it beneficial when code relying on the *unspecified* value fails as early as possible. For instance in Guix package recipes, some people (including me) occasionally accidentally write recipes where a procedure returns *unspecified* where actually a Boolean is expected. This easily falls through the cracks because the system accepts *unspecified* as a non-false Boolean value, when actually it indicates that any arbitrary value could have been returned in its place, including #f. Just my two cents. The maintainers should decide what to do. :-) Taylan