Andy Wingo <wi...@pobox.com> writes: > `lexical' > A lexically-bound variable. The value is a unique token (in > the sense of `eq?') identifying this binding. > > `macro' > A syntax transformer, either local or global. The value is > the transformer procedure.
Ironically, `syntax-local-binding' renders the current simple implementation strategy of `the-environment' inadequate, because identifier-syntax is no longer sufficient to simulate a lexical. More importantly, this exposing of internal binding representations will interfere with our ability to change the representations later. In particular, I was hoping to change the binding representation of `syntax-rules' macros so that they are serializable. In particular, they would be represented by the `syntax-rules' form itself (the same one that psyntax currently passes to `primitive-eval' to produce the transformer procedure). A weak-key hash table would cache the compiled transformer procedures. This would allow (the-environment) to capture locally-bound `syntax-rules' macros. Unfortunately, `syntax-local-binding', as currently documented, now makes this impossible. Thanks, Mark