;; do some allocation in the loop
(datatype bool (:true) (:false))
(define (- a b)
(%%cexp (int int -> int) "%0-%1" a b))
(define (= a b)
(%%cexp (int int -> bool) "%0==%1" a b))
(define (zero? x)
(%%cexp (int -> bool) "%0==0" x))
(let loop ((n 1000000)
(z {thing=0 blorb=#f})
(y (:blort 12)))
(if (zero? n)
z
(loop (- n 1)
{thing=n blorb=#f}
(:blort n))))