Just FYI, I found a source saying that R5RS defines (though I could not find it there) 'letrec' via this transformation (which also answers my question): (letrec ([x1 e1] ... [xn en]) body) ~> (let ([x1 undefined] ... [xn undefined]) (let ([t1 e1] ... [tn en]) (set! x1 t1) ... (set! xn tn)) body)
Hans