In this example,
the inline declaration applies
only to the third call to foo, but not to the first or second ones.
The special declaration of x causes let
to make a dynamic binding for x, and causes the reference to
x
in the body of let to be a dynamic reference.
The reference to x in the second call to foo is a local reference
to the second parameter of nonsense.
The reference to x in the first call to foo is a local
reference, not a special one. The special declaration of z
causes the reference to z in the
third
call
to foo to be a dynamic reference; it does not
refer to the parameter to nonsense named z, because that
parameter binding has not been declared to be special.
(The special declaration of z does not appear in the body
of defun, but in an inner form, and therefore does not
affect the binding of the parameter.)