uiop:when-let*
(uiop:when-let* ((var form)...) body...)
The sequential uiop:when-let: each binding's form sees the
variables bound before it, and the first variable that comes out nil
short-circuits the whole form to nil without evaluating the remaining
forms. That is the difference that matters — a later form may safely assume
the earlier bindings are non-nil.
The second line never evaluates (/ 1 a), which would signal.
uiop is ASDF's portability layer, not part of Common Lisp: the name is only
reachable with the uiop: qualifier.
Backend support
Works on all four backends: it is a built-in macro expansion shared by the
interpreter and both compilers. Like the other built-in macros it has no
function value (#'uiop:when-let* is an error).