[racket-dev] cross-phase syntax constants
At Fri, 6 Jul 2012 11:13:44 -0400, Sam Tobin-Hochstadt wrote:
> I had not realized that I could sensibly wrap a module in a
> `begin-for-syntax`. What is the semantic difference between that and
> a "plain" submodule (other than my example working)?
For `(module* _name #f ....)', `begin-for-syntax' shifts the phase
level of the enclosing module's bindings relative to the submodule. An
enclosing `begin-for-syntax' has no effect on a `module' submodule or
`module*' with a module path instead of `#f', though.
(This is documented with `module*'.)