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