[racket-dev] RFC: "provide" via mutation
Stupid me. REQUIRING is done by DEMAND (as in NEED). So the strange thing is that you gain access to a module local identifier via the store. I still sense something is wrong with the store phases.
On Jun 21, 2010, at 4:01 PM, Sam Tobin-Hochstadt wrote:
> 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