[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DECLARE SPECIAL Considered Confusing

Nobody has yet pointed out that changing the rules for (DECLARE (SPECIAL
...)) to follow the scoping of the variables involved does make it harder
for people to write certain macros that bind variables.  For example,
consider trying to write LET*; you have to grovel through the declarations
in the body in order to distribute the SPECIAL declarations properly.

The old rule (which I have always found appalling -- I'm not trying to
defend it) did have the advantage that you can always extract the
declarations from the body of a macro form and just wrap the entire
expansion in a LOCALLY.

If we really intend to open this whole can of worms, it might also be a
good idea for someone to remind us all of the arguments for the concept of
"pervasive declarations".