I read https://github.com/lunaryorn/blog/blob/master/posts/byte-compiling-eval-after-load.md which contains this code:
(defmacro stante-after (feature &rest forms) `(,(if (or (not byte-compile-current-file) (if (symbolp feature) (require feature nil :no-error) (load feature :no-message :no-error))) 'progn (message "stante-after: cannot find %s" feature) 'with-no-warnings) (eval-after-load ',feature `(funcall (function ,(lambda () ,@forms))))))
(info "(elisp)") but can't find a strict statement that the inner macro is expanded before the outer one. I can't find the semantics of nested backquotes.
I understand that
,(lambda () ,@forms) has a comma before
lambda in order to mark the form as functional and that triggers byte-compilation, but I can't figure out in which order that comma is interpreted by the