(defmacro decorate (name &body body) "Decorator macro to insert header and footer printing code around any block." `(progn (format t "~&----- header ~a -----~%" ,(format nil "~a" name)) ,@body (format t "~&----- footer ~a -----~%" ,(format nil "~a" name)))) (decorate block1 (format t "block1: content line 1~%") (format t "block1: content line 2~%"))