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

;; variant with zero-arg loop

(let ((n 1000000))
  (let loop ()
    (if (zero? n)
	"done"
	(let ((n0 (- n 1)))
	  (set! n n0)
	  (loop)))))