[project @ 2001-02-26 15:42:00 by simonpj]
[ghc-hetmet.git] / ghc / compiler / simplCore / SimplUtils.lhs
index 2732f0a..387cbd8 100644 (file)
@@ -7,7 +7,7 @@
 module SimplUtils (
        simplBinder, simplBinders, simplIds,
        tryRhsTyLam, tryEtaExpansion,
-       mkCase, findAlt, findDefault,
+       mkCase,
 
        -- The continuation type
        SimplCont(..), DupFlag(..), contIsDupable, contResultType,
@@ -24,7 +24,9 @@ import CmdLineOpts    ( switchIsOn, SimplifierSwitch(..),
                        )
 import CoreSyn
 import CoreUtils       ( exprIsTrivial, cheapEqExpr, exprType, exprIsCheap, 
-                         etaExpand, exprEtaExpandArity, bindNonRec, mkCoerce )
+                         etaExpand, exprEtaExpandArity, bindNonRec, mkCoerce,
+                         findDefault, findAlt
+                       )
 import Subst           ( InScopeSet, mkSubst, substBndrs, substBndr, substIds, substExpr )
 import Id              ( idType, idName, 
                          idUnfolding, idStrictness,
@@ -822,22 +824,3 @@ mkCase other_scrut case_bndr other_alts
 \end{code}
 
 
-\begin{code}
-findDefault :: [CoreAlt] -> ([CoreAlt], Maybe CoreExpr)
-findDefault []                         = ([], Nothing)
-findDefault ((DEFAULT,args,rhs) : alts) = ASSERT( null alts && null args ) 
-                                         ([], Just rhs)
-findDefault (alt : alts)               = case findDefault alts of 
-                                           (alts', deflt) -> (alt : alts', deflt)
-
-findAlt :: AltCon -> [CoreAlt] -> CoreAlt
-findAlt con alts
-  = go alts
-  where
-    go []          = pprPanic "Missing alternative" (ppr con $$ vcat (map ppr alts))
-    go (alt : alts) | matches alt = alt
-                   | otherwise   = go alts
-
-    matches (DEFAULT, _, _) = True
-    matches (con1, _, _)    = con == con1
-\end{code}