[improve return-node CSE, don't CSE 'Store's necesarily as it can lead to space leaks.
John Meacham <john@repetae.net>**20070605224326] hunk ./Grin/SSimplify.hs 32
-    envPapp  :: IM.IntMap (Atom,[Val])
+    envPapp  :: IM.IntMap (Atom,[Val]),
+    envPush  :: IM.IntMap Exp
hunk ./Grin/SSimplify.hs 106
-        Nothing -> cse' "Simplify.CSE.return-node" []
-        Just (n,fn) -> local (\s -> s { envPapp = IM.insert vn (t,vs) (envPapp s) }) $ cse' "Simplify.CSE.return-node" []
+        Nothing -> cse "Simplify.CSE.return-node" [(Return [p],Return [v]),(Store p,Store v)]
+        Just (n,fn) -> local (\s -> s { envPapp = IM.insert vn (t,vs) (envPapp s) }) $ cse' "Simplify.CSE.return-node" [(Return [p],Return [v]),(Store p,Store v)]
hunk ./Grin/SSimplify.hs 110
-        True -> cse' "Simplify.CSE.store-whnf" [(Fetch p,Return [v]),(gEval p,Return [v])]
+        True -> local (\s -> s { envPush = IM.insert vn (Store v) (envPush s) }) $ cse "Simplify.CSE.store-whnf" [(Fetch p,Return [v]),(gEval p,Return [v])]