<HTML><BODY><p>#lang racket<br>(require (for-syntax syntax/id-table))</p><p>(define-for-syntax table (make-free-id-table))</p><p>(define-syntax (save-and-define stx)<br> (syntax-case stx ()<br> [(_ ID) (free-id-table-set! table #'ID 1) #'(define ID 1)]))</p><p>(define-syntax (load stx)<br> (syntax-case stx ()<br> [(_ ID2)<br> (if (free-id-table-ref table #'ID2 #f) #''ok #''different)]))</p><p>(module+ test<br> (save-and-define a)<br> (displayln (load a)))</p>---------<br><br>Gives 'different. Expected 'ok<br><br>P.S. If I change last sexp to<br><br><p>;(module+ test<br> (save-and-define a)<br> (displayln (load a))</p>then gives 'ok as expected.<br><br>Please, help.<br><br>-- <br>Roman Klochkov</BODY></HTML>