Hello,
I am trying to use a struct that is both mutable, and has
prop:rename-transformer, to create a mutable rename transformer. I am
able to update the value in the struct, and that update gets reflected
properly when I do `syntax-local-value/immediate`, but
`syntax-local-value` seems to keep around the previous definition.
Is prop:rename-transformer or syntax-local-value supposed to cache its
result, or would this be a bug?
My code so far is here:
http://pasterack.org/pastes/41342
```
#lang racket
(define-syntax string1 "hello")
(define-syntax string2 "world")
(begin-for-syntax
(struct string-box (str)
#:mutable
#:property prop:rename-transformer
(lambda (inst)
(if (string-box-str inst)
#'string1
#'string2))))
(define-syntax (string-lookup stx)
(syntax-case stx ()
[(_ id)
#`'#,(syntax-local-value #'id)]))
(define-syntax (string-set! stx)
(syntax-case stx ()
[(_ box value)
(begin
(define-values (x y) (syntax-local-value/immediate #'box))
(set-string-box-str! x #'value)
#'(void))]))
(define-syntax current-str (string-box #t))
(string-lookup current-str)
(string-set! current-str #f)
(string-lookup current-str)
```
Thank you for your help.
~Leif Andersen