If you eval the following macro and view its doc with 'C-h f', you will notice that ewoc is not recognised as an argument,i.e. it remains in lower case and EWOC in the doc-string is not italic. (defmacro* %with-ewoc-node ((var ewoc) &body body) "Bind VAR to the EWOC node at point. When VAR is non-nil, execute BODY." (declare (indent 1) (debug t)) `(let ((,var (ewoc-locate ,ewoc))) (when ,var ,@body))) See this screenshot: