What if we didn’t use GENSYM?
(defmacro if-n-z-p-alt (expr f1 f2 f3)
(cond ((minusp ,val) ,f1)
((plusp ,val) ,f3) ) ) ) )
> '(if-n-z-p-alt (- x 3) (- x 1) x (+ x 1)))
(COND ((MINUSP X) (- X 1)) ((ZEROP X) X) ((PLUSP X) (+ X 1))))
> (if-n-z-p-alt (- x 3) (- x 1) x (+ x 1)))