GENSYMLET
(defmacro gensymlet ((&rest bindings) &body body) (let ((keys (loop for n in bindings collect (first n))) (vals (loop for n in bindings collect (second n)))) `(with-gensyms (,@keys) `(let (,,@(loop for j in keys for k in vals collect ``(,,j ,,k))) ,,@body))))

macro example