Idee: eine Speicherstelle anlegen und als Vorwärtsreferenz auf das Resultat der Rekursion benutzen
evaluate env x = case x of ...
Rec n ( Abs x b ) ->
new ( ValErr "Rec" ) >>= \ a ->
with ( evaluate
( extend env n ... )
( Abs x ... ) ) $ \ v ->
put a v >>= \ () ->
return v