There is a larger problem with LETREC. Consider:
(letrec ((a:int32 (+ 1 2))
(f (lambda (x) (+ x a)))) ...body...)
which will get rewritten by the closure converter. The problem here is
that 'a' will get captured before it is initialized. When we switch to
MAKE-CLOSURE and SET-CLOSURE, this will be corrected as well.
shap