__letr (internal to letfn):
If there is no body, the last function defined was returned
as a value -- wrapping ~@body in (block ...) fixes.
Avoid infinite loop when there are no sequences given by
testing for nil rest instead of len == 1.
These fixes are included in the boot.lisp available here:
However, that boot.lisp includes my single method class
implementaton, as well as some optimisations, mostly
relying on (first nil) => nil, and a couple of changes to
documented Lisp or DotLisp behaviour, the most
significant being that (reduce f nil) does not call f.