<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>