I have a fairly crazy macro that chains together syntax transformers that are 
stored in syntax-parameters to get a sort of "macro mix-in" if you will. In 
order to do this, I have code that looks like the following:
(define old-tr (syntax-parameter-value #'p))
(define new-tr (syntax-parser [(_ blah) (old-tr #'(modified-blah))]))
(syntax-parser [(_ macro-in) #'(syntax-parameterize ([p #,new-tr]) macro-out)])

Often this works. However, I am now putting this kind of code inside of a 
let-syntax that is the product of a macro that is given the identifier to bind 
in the let-syntax. The use of this macro uses the bound identifier, which (in 
my head) should just use this transformer, expand away and not have to be 
marshalled. There is no documentation for the term "3D syntax" so I wasn't sure 
where I could read why my mental model is flawed.

So, what could be happening here that would cause the marshalling?

-Ian
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to