Thanks to Robby and Sam for their explanations. Regarding let*, §11.4.6 says that "the ⟨init⟩s are evaluated and bindings created sequentially from left to right." No room for interleaving there. Nor in letrec*. However, I think letrec is still up for grabs. Regards, Alan -- Alan Watson http://www.alan-watson.org/