From: Twan van Laarhoven Date: Thu, 17 Jan 2008 18:53:30 +0000 (+0000) Subject: seqMaybe is more commonly known as mplus X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=28f7bda61e5f3b2a8e3711ee1f93e863ecb7620b seqMaybe is more commonly known as mplus --- diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs index 6b1d053..72229ec 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 359c470..029df84 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 8e2094d..1cb2223 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 624e97f..2e7603b 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 }))