### 17.1 Solution for `exch` ¶

The `exch` macro (see Arguments to macros) as presented requires clients to double quote their arguments. A nicer definition, which lets clients follow the rule of thumb of one level of quoting per level of parentheses, involves adding quotes in the definition of `exch`, as follows:

    define(`exch', ``$2', `$1'')
    ⇒
    define(exch(`expansion text', `macro'))
    ⇒
    macro
    ⇒expansion text