seqMaybe is more commonly known as mplus
authorTwan van Laarhoven <twanvl@gmail.com>
Thu, 17 Jan 2008 18:53:30 +0000 (18:53 +0000)
committerTwan van Laarhoven <twanvl@gmail.com>
Thu, 17 Jan 2008 18:53:30 +0000 (18:53 +0000)
compiler/main/HscTypes.lhs
compiler/rename/RnNames.lhs
compiler/rename/RnSource.lhs
compiler/typecheck/TcClassDcl.lhs

index 6b1d053..72229ec 100644 (file)
@@ -106,7 +106,7 @@ import BasicTypes   ( Version, initialVersion, IPName,
 import IfaceSyn
 import FiniteMap       ( FiniteMap )
 import CoreSyn         ( CoreRule )
 import IfaceSyn
 import FiniteMap       ( FiniteMap )
 import CoreSyn         ( CoreRule )
-import Maybes          ( orElse, expectJust, catMaybes, seqMaybe )
+import Maybes          ( orElse, expectJust, catMaybes )
 import Outputable
 import BreakArray
 import SrcLoc          ( SrcSpan, Located )
 import Outputable
 import BreakArray
 import SrcLoc          ( SrcSpan, Located )
@@ -120,6 +120,7 @@ import System.Time  ( ClockTime )
 import Data.IORef
 import Data.Array       ( Array, array )
 import Data.List
 import Data.IORef
 import Data.Array       ( Array, array )
 import Data.List
+import Control.Monad    ( mplus )
 \end{code}
 
 
 \end{code}
 
 
@@ -277,7 +278,7 @@ lookupIfaceByModule dflags hpt pit mod
        -- in the HPT.  If it's not from the home package it's wrong to look
        -- in the HPT, because the HPT is indexed by *ModuleName* not Module
     fmap hm_iface (lookupUFM hpt (moduleName mod)) 
        -- in the HPT.  If it's not from the home package it's wrong to look
        -- in the HPT, because the HPT is indexed by *ModuleName* not Module
     fmap hm_iface (lookupUFM hpt (moduleName mod)) 
-    `seqMaybe` lookupModuleEnv pit mod
+    `mplus` lookupModuleEnv pit mod
 
   | otherwise = lookupModuleEnv pit mod                -- Look in PIT only 
 
 
   | otherwise = lookupModuleEnv pit mod                -- Look in PIT only 
 
index 359c470..029df84 100644 (file)
@@ -52,7 +52,7 @@ import Util
 import ListSetOps
 import Data.List        ( partition, concatMap, (\\), delete )
 import IO              ( openFile, IOMode(..) )
 import ListSetOps
 import Data.List        ( partition, concatMap, (\\), delete )
 import IO              ( openFile, IOMode(..) )
-import Monad           ( when )
+import Monad           ( when, mplus )
 \end{code}
 
 
 \end{code}
 
 
@@ -1026,7 +1026,7 @@ lookupImpDeprec :: DynFlags -> HomePackageTable -> PackageIfaceTable
 -- The name is definitely imported, so look in HPT, PIT
 lookupImpDeprec dflags hpt pit gre
   = case lookupIfaceByModule dflags hpt pit (nameModule name) of
 -- The name is definitely imported, so look in HPT, PIT
 lookupImpDeprec dflags hpt pit gre
   = case lookupIfaceByModule dflags hpt pit (nameModule name) of
-       Just iface -> mi_dep_fn iface name `seqMaybe`   -- Bleat if the thing, *or
+       Just iface -> mi_dep_fn iface name `mplus`      -- Bleat if the thing, *or
                      case gre_par gre of       
                        ParentIs p -> mi_dep_fn iface p -- its parent*, is deprec'd
                        NoParent   -> Nothing
                      case gre_par gre of       
                        ParentIs p -> mi_dep_fn iface p -- its parent*, is deprec'd
                        NoParent   -> Nothing
index 8e2094d..1cb2223 100644 (file)
@@ -51,12 +51,12 @@ import OccName
 import Outputable
 import SrcLoc          ( Located(..), unLoc, noLoc )
 import DynFlags        ( DynFlag(..) )
 import Outputable
 import SrcLoc          ( Located(..), unLoc, noLoc )
 import DynFlags        ( DynFlag(..) )
-import Maybes          ( seqMaybe )
 import Maybe            ( isNothing )
 import Maybe            ( isNothing )
-import Monad           ( liftM, when )
 import BasicTypes       ( Boxity(..) )
 
 import ListSetOps    (findDupsEq, mkLookupFun)
 import BasicTypes       ( Boxity(..) )
 
 import ListSetOps    (findDupsEq, mkLookupFun)
+
+import Control.Monad
 \end{code}
 
 @rnSourceDecl@ `renames' declarations.
 \end{code}
 
 @rnSourceDecl@ `renames' declarations.
@@ -535,8 +535,8 @@ validRuleLhs foralls lhs
   where
     checkl (L loc e) = check e
 
   where
     checkl (L loc e) = check e
 
-    check (OpApp e1 op _ e2)             = checkl op `seqMaybe` checkl_e e1 `seqMaybe` checkl_e e2
-    check (HsApp e1 e2)                  = checkl e1 `seqMaybe` checkl_e e2
+    check (OpApp e1 op _ e2)             = checkl op `mplus` checkl_e e1 `mplus` checkl_e e2
+    check (HsApp e1 e2)                  = checkl e1 `mplus` checkl_e e2
     check (HsVar v) | v `notElem` foralls = Nothing
     check other                                  = Just other  -- Failure
 
     check (HsVar v) | v `notElem` foralls = Nothing
     check other                                  = Just other  -- Failure
 
@@ -549,14 +549,14 @@ validRuleLhs foralls lhs
     check_e (HsLit e)    = Nothing
     check_e (HsOverLit e) = Nothing
 
     check_e (HsLit e)    = Nothing
     check_e (HsOverLit e) = Nothing
 
-    check_e (OpApp e1 op _ e2)          = checkl_e e1 `seqMaybe` checkl_e op `seqMaybe` checkl_e e2
-    check_e (HsApp e1 e2)               = checkl_e e1 `seqMaybe` checkl_e e2
+    check_e (OpApp e1 op _ e2)          = checkl_e e1 `mplus` checkl_e op `mplus` checkl_e e2
+    check_e (HsApp e1 e2)               = checkl_e e1 `mplus` checkl_e e2
     check_e (NegApp e _)                = checkl_e e
     check_e (ExplicitList _ es)         = checkl_es es
     check_e (ExplicitTuple es _) = checkl_es es
     check_e other               = Just other   -- Fails
 
     check_e (NegApp e _)                = checkl_e e
     check_e (ExplicitList _ es)         = checkl_es es
     check_e (ExplicitTuple es _) = checkl_es es
     check_e other               = Just other   -- Fails
 
-    checkl_es es = foldr (seqMaybe . checkl_e) Nothing es
+    checkl_es es = foldr (mplus . checkl_e) Nothing es
 -}
 
 badRuleLhsErr name lhs bad_e
 -}
 
 badRuleLhsErr name lhs bad_e
index 624e97f..2e7603b 100644 (file)
@@ -60,6 +60,8 @@ import List
 import BasicTypes
 import Bag
 import FastString
 import BasicTypes
 import Bag
 import FastString
+
+import Control.Monad
 \end{code}
 
 
 \end{code}
 
 
@@ -552,7 +554,7 @@ isInstDecl (SigOrigin (ClsSkol _)) = False
 -- The renamer just puts the selector ID as the binder in the method binding
 -- but we must use the method name; so we substitute it here.  Crude but simple.
 find_bind sel_name meth_name binds
 -- The renamer just puts the selector ID as the binder in the method binding
 -- but we must use the method name; so we substitute it here.  Crude but simple.
 find_bind sel_name meth_name binds
-  = foldlBag seqMaybe Nothing (mapBag f binds)
+  = foldlBag mplus Nothing (mapBag f binds)
   where 
        f (L loc1 bind@(FunBind { fun_id = L loc2 op_name })) | op_name == sel_name
                 = Just (L loc1 (bind { fun_id = L loc2 meth_name }))
   where 
        f (L loc1 bind@(FunBind { fun_id = L loc2 op_name })) | op_name == sel_name
                 = Just (L loc1 (bind { fun_id = L loc2 meth_name }))