rfc: a thin lexical layer for maxima



Hmm, this is a hard to win battle (as I was warned about!).

It seems that my rule that an unbound gensym evaluates to the symbol it 
replaces has
some problems! Consider

block([y],y::1);

The sanitized version of this

block([gxxxxx],gxxxxx::1)

together with my rule would create a global variable y with value 1! 
This is clearly
not sane behaviour.

So it seems that my rule should only apply when scope has left the block 
statement
(to deal with things like block([y],y);  )

Which entails a change to how meval evaluates block statements...

Is this the beginning of the end?

Michel