[racket-dev] Trouble with state, submodules, and module-begin

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Jul 3 11:08:07 EDT 2012

At Tue, 3 Jul 2012 11:05:52 -0400, Sam Tobin-Hochstadt wrote:
> However, I don't (yet) think it's the right solution.  In particular,
> I feel like this moves away from the really great feature of
> submodules, which is that they behave basically exactly like regular
> modules.  From what I can tell, the only place where this uniformity
> breaks down currently is with `(module* name #f ....)', where the
> outer module is `require`d *before* the inner module starts expanding.
>  In other words, if we have:
> (module M L
>    (module* N #f ...))
> currently `M` is required *before* `N` begins expanding, which is
> unlike any other module relationship that can be expressed in Racket
> (I think).

How does it differ from

 (module M L ....)
 (module N M ....)


Posted on the dev mailing list.