Oh dear...
Ummm... here are the macros that I used in the path-between...
(defmacro nlet (name bindings &body body)
(let ((args (mapcar #'first bindings))
(vals (mapcar #'second bindings)))
`(labels ((,name ,args ,@body))
(,name ,@vals))
))
(defmacro when-let ((var val) &body body)
`(let ((,var ,val))
(when ,var
,@body)))
Dr. David McClain
dbm@refined-audiometrics.com