[add simple loop detection to optimizer
John Meacham <john@repetae.net>**20051018032444] hunk ./E/SSimplify.hs 253
-        -- let z (t,e) | worthStricting e && Just (S _) <- Map.lookup (tvrNum t) (so_strictness sopts)= do
-        let z (t,e) = do
+        let z (t,EVar t') | t == t' = do    -- look for simple loops and replace them with errors.
+                t'' <- nname t sub inb
+                mtick $ "E.Simplify.<<loop>>.{" ++ showName (tvrIdent t) ++ "}"
+                return (tvrNum t,Many,t'',EError "<<loop>>" (getType t))
+            z (t,e) = do