I, for one, have never liked the definition of letrec in terms of side-effects. Assignment is too powerful an operation -- it's overkill, and I don't believe the extra expressibility is worth it. ML's letrec is defined primitively, no side-effects. Nice and simple. -Olin