(defmacro with-new-definition-in-environment
((new-env old-env macrolet/flet/labels-form) &body body)
(defmacro with-new-definition-in-environment
((new-env old-env macrolet/flet/labels-form) &body body)
(walker-environment-bind (new-env old-env)
(let* ((possible-block-name (second form))
(blocked-prog (and (symbolp possible-block-name)
(walker-environment-bind (new-env old-env)
(let* ((possible-block-name (second form))
(blocked-prog (and (symbolp possible-block-name)
(multiple-value-bind (let/let* block-name bindings body)
(if blocked-prog
(values (car form) (cadr form) (caddr form) (cdddr form))
(multiple-value-bind (let/let* block-name bindings body)
(if blocked-prog
(values (car form) (cadr form) (caddr form) (cdddr form))