summaryrefslogtreecommitdiff
path: root/src/modules/utils/t-factory.scm
blob: cad7c24fe5f4cb3abe3a257ea6a5000823801aa5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(define-module (modules utils t-factory)
  #:use-module (srfi srfi-9)
  #:export (temporary?
	    temporary-name
	    temporary-register
	    set-temporary-register!
	    make-temporary
	    ))


(define-record-type <temporary>
  (make--temporary name register)
  temporary?
  (name temporary-name)
  (register temporary-register set-temporary-register!))

(define make-temporary)
(let ((count 100))
  (set! make-temporary
	(lambda ()
	  (set! count (1+ count))
	  (make--temporary (string->symbol
			    (format #f "t.~a" count))
			   #f))))