aboutsummaryrefslogtreecommitdiffstats
path: root/lib/csc/gensym.scheme
blob: 8e340e47847813386d3323d2b70e8cbbcebadb67 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(define-library (csc gensym)
  (export
    gen
    gensym->int
    gensym?)
  (import (scheme base))
  (begin


    (define-record-type <gensym>
      (make-gensym id)
      gensym?
      (id gensym->int))


    (define *next-id* 0)


    (define (gen)
      (set! *next-id* (+ 1 *next-id*))
      (make-gensym *next-id*))))