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