diff --git a/racket/src/schemify/interpret.rkt b/racket/src/schemify/interpret.rkt index dcd6cb2441..0d2d85cf16 100644 --- a/racket/src/schemify/interpret.rkt +++ b/racket/src/schemify/interpret.rkt @@ -170,7 +170,7 @@ (compile-assignment id rhs env stack-depth)] [`(define-values ,ids ,rhs) (define gen-ids (for/list ([id (in-list ids)]) - (gensym id))) + (gensym (unwrap id)))) (compile-expr `(call-with-values (lambda () ,rhs) (lambda ,gen-ids ,@(if (null? ids) diff --git a/racket/src/schemify/schemify.rkt b/racket/src/schemify/schemify.rkt index 557af4d1b8..93aa4236a7 100644 --- a/racket/src/schemify/schemify.rkt +++ b/racket/src/schemify/schemify.rkt @@ -297,7 +297,7 @@ ;; of `make-struct-type`: (simple-mutated-state? (hash-ref mutated (unwrap struct:) #f))) (define can-impersonate? (not (struct-type-info-authentic? sti))) - (define raw-s? (if can-impersonate? (gensym s?) s?)) + (define raw-s? (if can-impersonate? (gensym (unwrap s?)) s?)) `(begin (define ,struct:s (make-record-type-descriptor ',(struct-type-info-name sti) ,(schemify (struct-type-info-parent sti)) @@ -333,7 +333,7 @@ null) ,@(for/list ([acc/mut (in-list acc/muts)] [make-acc/mut (in-list make-acc/muts)]) - (define raw-acc/mut (if can-impersonate? (gensym acc/mut) acc/mut)) + (define raw-acc/mut (if can-impersonate? (gensym (unwrap acc/mut)) acc/mut)) (match make-acc/mut [`(make-struct-field-accessor ,(? (lambda (v) (wrap-eq? v -ref))) ,pos ,_) (define raw-def `(define ,raw-acc/mut (record-accessor ,struct:s ,pos)))