[racket-dev] cross-phase syntax constants

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Fri Jul 6 11:25:25 EDT 2012

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*'.)

Posted on the dev mailing list.