summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorTwan van Laarhoven <twanvl@gmail.com>2008-01-17 18:53:30 +0000
committerTwan van Laarhoven <twanvl@gmail.com>2008-01-17 18:53:30 +0000
commit28f7bda61e5f3b2a8e3711ee1f93e863ecb7620b (patch)
treebfd7a73e2b4d6441c8739dd4b17396eb976a13ed /compiler
parente8687b3cb725bcc7d6cd38aa9bd71b2ba5a763f1 (diff)
downloadhaskell-28f7bda61e5f3b2a8e3711ee1f93e863ecb7620b.tar.gz
seqMaybe is more commonly known as mplus
Diffstat (limited to 'compiler')
-rw-r--r--compiler/main/HscTypes.lhs5
-rw-r--r--compiler/rename/RnNames.lhs4
-rw-r--r--compiler/rename/RnSource.lhs14
-rw-r--r--compiler/typecheck/TcClassDcl.lhs4
4 files changed, 15 insertions, 12 deletions
diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs
index 6b1d05397d..72229ecca6 100644
--- a/compiler/main/HscTypes.lhs
+++ b/compiler/main/HscTypes.lhs
@@ -106,7 +106,7 @@ import BasicTypes ( Version, initialVersion, IPName,
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 )
@@ -120,6 +120,7 @@ import System.Time ( ClockTime )
import Data.IORef
import Data.Array ( Array, array )
import Data.List
+import Control.Monad ( mplus )
\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))
- `seqMaybe` lookupModuleEnv pit mod
+ `mplus` lookupModuleEnv pit mod
| otherwise = lookupModuleEnv pit mod -- Look in PIT only
diff --git a/compiler/rename/RnNames.lhs b/compiler/rename/RnNames.lhs
index 359c470af7..029df843f0 100644
--- a/compiler/rename/RnNames.lhs
+++ b/compiler/rename/RnNames.lhs
@@ -52,7 +52,7 @@ import Util
import ListSetOps
import Data.List ( partition, concatMap, (\\), delete )
import IO ( openFile, IOMode(..) )
-import Monad ( when )
+import Monad ( when, mplus )
\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
- 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
diff --git a/compiler/rename/RnSource.lhs b/compiler/rename/RnSource.lhs
index 8e2094d5a9..1cb2223367 100644
--- a/compiler/rename/RnSource.lhs
+++ b/compiler/rename/RnSource.lhs
@@ -51,12 +51,12 @@ import OccName
import Outputable
import SrcLoc ( Located(..), unLoc, noLoc )
import DynFlags ( DynFlag(..) )
-import Maybes ( seqMaybe )
import Maybe ( isNothing )
-import Monad ( liftM, when )
import BasicTypes ( Boxity(..) )
import ListSetOps (findDupsEq, mkLookupFun)
+
+import Control.Monad
\end{code}
@rnSourceDecl@ `renames' declarations.
@@ -535,8 +535,8 @@ validRuleLhs foralls lhs
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
@@ -549,14 +549,14 @@ validRuleLhs foralls lhs
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
- checkl_es es = foldr (seqMaybe . checkl_e) Nothing es
+ checkl_es es = foldr (mplus . checkl_e) Nothing es
-}
badRuleLhsErr name lhs bad_e
diff --git a/compiler/typecheck/TcClassDcl.lhs b/compiler/typecheck/TcClassDcl.lhs
index 624e97ffdb..2e7603b87c 100644
--- a/compiler/typecheck/TcClassDcl.lhs
+++ b/compiler/typecheck/TcClassDcl.lhs
@@ -60,6 +60,8 @@ import List
import BasicTypes
import Bag
import FastString
+
+import Control.Monad
\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
- = 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 }))