Question about declare-top



C Y wrote:
 > I don't understand why
> you would want to work this way - can you provide an example where this
> behavior is desirable, or rather what it achieves?  


Sure.

You can shadow the setting of a dynamic variable at a local level.
e.g. to continue the previous example,

(defun foo2()(list  (foo 3)(foo 4))

note that bar refers only to x,  but in the two calls, the x is different.

Also note that in this example, x is NOT GLOBAL.  It is bound dynamically
within foo2.

RJF