(defmacro bar (&rest body) (let ((v (make-symbol ""))) ; Crashes with "" as name. `(let ((,v (catch :eof ,@body))) (when (not (eq ,v :eof)) ,v)))) (defun foo () (bar (message "Hello World!")))