[add a couple more grin peephole optimizations
John Meacham <john@repetae.net>**20060124110205] hunk ./Grin/Simplify.hs 138
-    --getCS (b,app@(App ev _)) | ev == funcEval = return $ Map.single app (Return b)
-    --getCS (b,app@(App ev _)) | ev == funcApply = return $ Map.single app (Return b)
hunk ./Grin/Simplify.hs 140
-    getCS (b@Var {},Store v@(Var _ _)) = return $ Map.singleton (App funcEval [b] TyNode) (Return v)     -- TODO - only works if node stores have always been evaluated.
+    --getCS (b@Var {},Store v@(Var _ _)) = return $ Map.singleton (App funcEval [b] TyNode) (Return v)     -- TODO - only works if node stores have always been evaluated.
hunk ./Grin/Simplify.hs 213
-    --f (Case v [v2@(Var {} :-> _)]) = do
-    --    f (Return v :>>= v2)
-    --f (Case v [v2@(Var {} :-> _)] :>>= lr) = do
-    --    f ((Return v :>>= v2) :>>= lr)
+    f (Store t :>>= v :-> Fetch v' :>>= lr) | v == v' = do
+        mtick "Optimize.optimize.store-fetch"
+        f (Store t :>>= v :-> Return t :>>= lr)
+    f (Update v t :>>= Tup [] :-> Fetch v' :>>= lr) | v == v' = do
+        mtick "Optimize.optimize.update-fetch"
+        f (Update v t :>>= Tup [] :-> Return t :>>= lr)