(define (printn x)
(%%cexp ('a -> undefined) "dump_object (%0, 0); fprintf (stdout, \"\\n\")" x))
(define (+ a b)
(%%cexp (int int -> int) "%0+%1" a b))
(define (make-counter)
(let ((val 0))
(define (next)
(let ((r val))
(set! val (+ val 1))
r)
)
next
))
(let ((c (make-counter)))
(printn (c))
(printn (c))
)