(define-library (csc gensym) (export gensym gensym->int gensym=?) (import (scheme base)) (begin (define-record-type (make-gensym id) gensym? (id gensym->int)) (define (gensym=? s1 s2) (= (gensym->int s1) (gensym->int s2))) (define *next-id* 0) (define (gensym) (let ((sym (make-gensym *next-id*))) (set! *next-id* (+ 1 *next-id*)) sym))))