[racket] syntax-parse and literals
Thanks for the very informative thread.
Piecing together what Asumu, Jay, Robby, and Eli said, I think I
understand what's going on, and I think this actually answers a
question I asked last year and didn't get an answer to: Why do require
and provide export their sub-forms as macros rather than just make
them local keywords.
What I understand now is that by exporting the sub-forms as macros,
one can ensure that the binding structure is just right. I think this
is what Jay means when he says "I consider insisting on bindings a
feature, because it promotes well-behaved macros".
The downside is that a single "feature" now has a whole bunch of
exports, and anyone who wants to re-export the feature has to know
about and re-export all the other bound names as well. For instance,
I can't just re-export "require" -- I have to track all the require
sub-forms and re-export those as well.
Shriram