[racket-dev] RFC: "provide" via mutation

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Jun 21 16:01:33 EDT 2010

On Mon, Jun 21, 2010 at 3:58 PM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
> I still don't understand how the #'x reference is actually exported from m to n. I understand the store part but why is the for-value require of 'm needed? If you remove it you get a type-checking error (add1 applied to False).

If you don't have the `require' of 'm, then the box is never mutated
in the store of the expansion time of 'n, leaving it with the initial
value #f. The `begin-for-syntax' in 'm is what does the exporting, by
mutating the shared box.
sam th
samth at ccs.neu.edu

Posted on the dev mailing list.