In EoPL the evaluator that implements call-by-need is built on the evaluator
that implements call-by-reference. Is call-by-reference necessary?
x is bound to a reference to a thunk and y is bound to the same reference.
Why is it important for x and y to be bound to the same refererence?
((lambda(x)
((lambda (y) <expression>) x))
<expression>)