If a macro provided by a module uses set! in its expansion, then a use in 
another module will cause a "cannot mutate module-required identifier" error, 
even if the identifier is not provided. It's easy enough for me to write a 
setter function and expand to that.

I can see that it is undecidable in general to determine if a macro will expand 
into a set! of a module's identifier so that the "no set!" optimizations would 
be completely killed.
I would like to see a different error in this case (e.g. "set! in foreign 
module macro expansions prohibited"), if that is an easily detected case, that 
is.

-Ian
_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to