As control-flow.lisp is being reviewed, I'd like to suggest the incoporation of ECOND, and CCOND that do the obvious things.
An implementation for ECOND is appended.
-T.
(defmacro econd (&body clauses) "ECOND works exactly like COND except if no test-form of the clauses evaluates to true, an error is signalled." `(cond ,@(append clauses (unless (loop for (clause-test . nil) in clauses thereis (member clause-test '(t otherwise))) `((t (error "ECOND -- fall through.")))))))