Quoting macro arguments
=======================
Each argument has leading unquoted whitespace removed. Within each
argument, all unquoted parentheses must match. For example, if FOO is
a macro,
foo(() (`(') `(')
is a macro call, with one argument, whose value is `() (() ('.
It is common practice to quote all arguments to macros, unless you
are sure you want the arguments expanded. Thus, in the above example
with the parentheses, the `right' way to do it is like this:
foo(`() (() (')
It is, however, in certain cases necessary to leave out quotes for
some arguments, and there is nothing wrong in doing it. It just makes
life a bit harder, if you are not careful.