(define Letrec (lambda (expr) (match expr [(letrec ([,lhs* ,[Lambda -> code*]] ...) (entry-point ,label)) (let ([code* (apply append (map cons lhs* code*))]) `(code (jump (label ,label)) ,code* ...))] [,expr (error who "invalid Letrec ~s" expr)])))