[commit: ghc] wip/redundant-constraints: Remove redundant constraints in GHC source code discovered by -fwarn-redundant-constraints (8088ab6)
git at git.haskell.org
git at git.haskell.org
Mon Jan 5 15:01:18 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/redundant-constraints
Link : http://ghc.haskell.org/trac/ghc/changeset/8088ab68dc514c7b7aad1e173b1e43d84a7818a1/ghc
>---------------------------------------------------------------
commit 8088ab68dc514c7b7aad1e173b1e43d84a7818a1
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Mon Jan 5 09:07:47 2015 +0000
Remove redundant constraints in GHC source code discovered by -fwarn-redundant-constraints
>---------------------------------------------------------------
8088ab68dc514c7b7aad1e173b1e43d84a7818a1
compiler/cmm/CmmExpr.hs | 8 ++++----
compiler/coreSyn/TrieMap.hs | 4 ++--
compiler/hsSyn/HsDecls.hs | 8 +++-----
compiler/hsSyn/HsExpr.hs | 8 ++++----
4 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/compiler/cmm/CmmExpr.hs b/compiler/cmm/CmmExpr.hs
index 4d9bbf8..aa5cef1 100644
--- a/compiler/cmm/CmmExpr.hs
+++ b/compiler/cmm/CmmExpr.hs
@@ -280,15 +280,15 @@ type RegSet r = Set r
type LocalRegSet = RegSet LocalReg
type GlobalRegSet = RegSet GlobalReg
-emptyRegSet :: Ord r => RegSet r
-nullRegSet :: Ord r => RegSet r -> Bool
+emptyRegSet :: RegSet r
+nullRegSet :: RegSet r -> Bool
elemRegSet :: Ord r => r -> RegSet r -> Bool
extendRegSet :: Ord r => RegSet r -> r -> RegSet r
deleteFromRegSet :: Ord r => RegSet r -> r -> RegSet r
mkRegSet :: Ord r => [r] -> RegSet r
minusRegSet, plusRegSet, timesRegSet :: Ord r => RegSet r -> RegSet r -> RegSet r
-sizeRegSet :: Ord r => RegSet r -> Int
-regSetToList :: Ord r => RegSet r -> [r]
+sizeRegSet :: RegSet r -> Int
+regSetToList :: RegSet r -> [r]
emptyRegSet = Set.empty
nullRegSet = Set.null
diff --git a/compiler/coreSyn/TrieMap.hs b/compiler/coreSyn/TrieMap.hs
index efae286..9197386 100644
--- a/compiler/coreSyn/TrieMap.hs
+++ b/compiler/coreSyn/TrieMap.hs
@@ -154,12 +154,12 @@ mapMb :: TrieMap m => (a->b) -> MaybeMap m a -> MaybeMap m b
mapMb f (MM { mm_nothing = mn, mm_just = mj })
= MM { mm_nothing = fmap f mn, mm_just = mapTM f mj }
-lkMaybe :: TrieMap m => (forall b. k -> m b -> Maybe b)
+lkMaybe :: (forall b. k -> m b -> Maybe b)
-> Maybe k -> MaybeMap m a -> Maybe a
lkMaybe _ Nothing = mm_nothing
lkMaybe lk (Just x) = mm_just >.> lk x
-xtMaybe :: TrieMap m => (forall b. k -> XT b -> m b -> m b)
+xtMaybe :: (forall b. k -> XT b -> m b -> m b)
-> Maybe k -> XT a -> MaybeMap m a -> MaybeMap m a
xtMaybe _ Nothing f m = m { mm_nothing = f (mm_nothing m) }
xtMaybe tr (Just x) f m = m { mm_just = mm_just m |> tr x f }
diff --git a/compiler/hsSyn/HsDecls.hs b/compiler/hsSyn/HsDecls.hs
index f81d0a1..4b54a8d 100644
--- a/compiler/hsSyn/HsDecls.hs
+++ b/compiler/hsSyn/HsDecls.hs
@@ -601,12 +601,10 @@ isDataFamilyDecl _other = False
-- Dealing with names
-tyFamInstDeclName :: OutputableBndr name
- => TyFamInstDecl name -> name
+tyFamInstDeclName :: TyFamInstDecl name -> name
tyFamInstDeclName = unLoc . tyFamInstDeclLName
-tyFamInstDeclLName :: OutputableBndr name
- => TyFamInstDecl name -> Located name
+tyFamInstDeclLName :: TyFamInstDecl name -> Located name
tyFamInstDeclLName (TyFamInstDecl { tfid_eqn =
(L _ (TyFamEqn { tfe_tycon = ln })) })
= ln
@@ -618,7 +616,7 @@ tyClDeclLName decl = tcdLName decl
tcdName :: TyClDecl name -> name
tcdName = unLoc . tyClDeclLName
-tyClDeclTyVars :: OutputableBndr name => TyClDecl name -> LHsTyVarBndrs name
+tyClDeclTyVars :: TyClDecl name -> LHsTyVarBndrs name
tyClDeclTyVars (FamDecl { tcdFam = FamilyDecl { fdTyVars = tvs } }) = tvs
tyClDeclTyVars d = tcdTyVars d
diff --git a/compiler/hsSyn/HsExpr.hs b/compiler/hsSyn/HsExpr.hs
index 384222b..a5a1aaf 100644
--- a/compiler/hsSyn/HsExpr.hs
+++ b/compiler/hsSyn/HsExpr.hs
@@ -1064,14 +1064,14 @@ pprMatch ctxt (Match pats maybe_ty grhss)
Nothing -> empty
-pprGRHSs :: (OutputableBndr idL, OutputableBndr idR, Outputable body)
+pprGRHSs :: (OutputableBndr idR, Outputable body)
=> HsMatchContext idL -> GRHSs idR body -> SDoc
pprGRHSs ctxt (GRHSs grhss binds)
= vcat (map (pprGRHS ctxt . unLoc) grhss)
$$ ppUnless (isEmptyLocalBinds binds)
(text "where" $$ nest 4 (pprBinds binds))
-pprGRHS :: (OutputableBndr idL, OutputableBndr idR, Outputable body)
+pprGRHS :: (OutputableBndr idR, Outputable body)
=> HsMatchContext idL -> GRHS idR body -> SDoc
pprGRHS ctxt (GRHS [] body)
= pp_rhs ctxt body
@@ -1355,8 +1355,8 @@ In any other context than 'MonadComp', the fields for most of these
'SyntaxExpr's stay bottom.
-}
-instance (OutputableBndr idL, OutputableBndr idR)
- => Outputable (ParStmtBlock idL idR) where
+instance (OutputableBndr idL)
+ => Outputable (ParStmtBlock idL idR) where
ppr (ParStmtBlock stmts _ _) = interpp'SP stmts
instance (OutputableBndr idL, OutputableBndr idR, Outputable body)
More information about the ghc-commits
mailing list