I think I understand: it just so happens that `(if #f #f)` evaluates to `#<unspecified>`, but it would still be valid if it evaluated to 5 or "roflcopter".
> "The return value of a function that returns nothing" is a > self-contradictory notion, if you think about it :) I was under the impression that in Lisp any S-expression evaluates to *something*, even if that something is some junk value or "nothing". > I would suggest using a symbol. How about 'nil? I was considering the possibility of serialising symbols as strings, but then 'nil would be indistinguishable from the string "nil". The more I think about, the more a singleton instance of a custom record makes sense.