summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2012-01-23 16:03:18 +0000
committerSimon Marlow <marlowsd@gmail.com>2012-01-23 16:03:18 +0000
commit489edbed6891080e09fd2f59a477e0f378ff9ad3 (patch)
tree55d18a33f3446d17a94bd00ba584838a9d9e8c61 /compiler
parent9be5fadb74613b465b144e77db1ed9b4696e1394 (diff)
downloadhaskell-489edbed6891080e09fd2f59a477e0f378ff9ad3.tar.gz
make it compile with earlier GHCs
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cmm/Hoopl/Dataflow.hs15
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/cmm/Hoopl/Dataflow.hs b/compiler/cmm/Hoopl/Dataflow.hs
index 133d92636c..6230c5ec6e 100644
--- a/compiler/cmm/Hoopl/Dataflow.hs
+++ b/compiler/cmm/Hoopl/Dataflow.hs
@@ -272,9 +272,9 @@ analyzeFwd FwdPass { fp_lattice = lattice,
-- NB. eta-expand block, GHC can't do this by itself. See #5809.
block :: forall e x . Block n e x -> f -> Fact x f
block BNil f = f
- block (BlockCO n b) f = (ftr n `cat` block b) f
- block (BlockCC l b n) f = (ftr l `cat` block b `cat` ltr n) f
- block (BlockOC b n) f = (block b `cat` ltr n) f
+ block (BlockCO n b) f = (ftr n `cat` block b) f
+ block (BlockCC l b n) f = (ftr l `cat` (block b `cat` ltr n)) f
+ block (BlockOC b n) f = (block b `cat` ltr n) f
block (BMiddle n) f = {-# SCC "b1" #-} mtr n f
block (BCat b1 b2) f = {-# SCC "b2" #-} (block b1 `cat` block b2) f
@@ -282,6 +282,7 @@ analyzeFwd FwdPass { fp_lattice = lattice,
block (BTail n t) f = {-# SCC "b4" #-} (mtr n `cat` block t) f
{-# INLINE cat #-}
+ cat :: forall f1 f2 f3 . (f1 -> f2) -> (f2 -> f3) -> (f1 -> f3)
cat ft1 ft2 = \f -> ft2 $! ft1 f
-- | if the graph being analyzed is open at the entry, there must
@@ -319,6 +320,7 @@ analyzeFwdBlocks FwdPass { fp_lattice = lattice,
block (BlockOC b n) f = ltr n f
{-# INLINE cat #-}
+ cat :: forall f1 f2 f3 . (f1 -> f2) -> (f2 -> f3) -> (f1 -> f3)
cat ft1 ft2 = \f -> ft2 $! ft1 f
----------------------------------------------------------------
@@ -354,9 +356,9 @@ analyzeBwd BwdPass { bp_lattice = lattice,
-- NB. eta-expand block, GHC can't do this by itself. See #5809.
block :: forall e x . Block n e x -> Fact x f -> f
block BNil f = f
- block (BlockCO n b) f = (ftr n `cat` block b) f
- block (BlockCC l b n) f = (ftr l `cat` block b `cat` ltr n) f
- block (BlockOC b n) f = (block b `cat` ltr n) f
+ block (BlockCO n b) f = (ftr n `cat` block b) f
+ block (BlockCC l b n) f = ((ftr l `cat` block b) `cat` ltr n) f
+ block (BlockOC b n) f = (block b `cat` ltr n) f
block (BMiddle n) f = mtr n f
block (BCat b1 b2) f = (block b1 `cat` block b2) f
@@ -364,6 +366,7 @@ analyzeBwd BwdPass { bp_lattice = lattice,
block (BTail n t) f = (mtr n `cat` block t) f
{-# INLINE cat #-}
+ cat :: forall f1 f2 f3 . (f2 -> f3) -> (f1 -> f2) -> (f1 -> f3)
cat ft1 ft2 = \f -> ft1 $! ft2 f
-----------------------------------------------------------------------------