BTW, I had trouble understanding the paragraph about the compiler-macro declare specs in (info "(elisp) Declare Form"), in particular the calling convention: | [...] When encountering a call to the function, of the form ‘(FUNCTION | ARGS...)’, the macro expander will call EXPANDER with that form as | well as with ARGS... not only because of the colons, but also because it's...wrong? EXPANDER is called with one argument, and the other formal arguments are available (bound) to the corresponding argument forms, right? Could you then maybe rephrase a bit [I don't want to, my English is not good enough. I'm able to do it but it always takes much too long to find a good wording.] TIA, Michael.