On 2016-02-18 00:06:56 -0800, Alexis King wrote: > It seems that possibly Typed Racket’s identifiers somehow do something > similar, though not quite the same? That is, they are provided with > contracts when used in an untyped module but provided bare when used in > another typed module? Could that approach be used here, and if so, how > is that implemented (in broad strokes)?
I think the same technique should work. Instead of setting the flag for a certain class of modules (typed modules for TR), you can set the flag only for the originating module and not set it anywhere else. TR basically does what Jay said, but using a rename-transformer. The relevant struct uses prop:rename-transformer with a procedure that branches on the flag value. See here: https://github.com/racket/typed-racket/blob/master/typed-racket-lib/typed-racket/typecheck/renamer.rkt#L23 Cheers, Asum -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.