diff options
| author | Simon Marlow <marlowsd@gmail.com> | 2012-01-23 16:03:18 +0000 |
|---|---|---|
| committer | Simon Marlow <marlowsd@gmail.com> | 2012-01-23 16:03:18 +0000 |
| commit | 489edbed6891080e09fd2f59a477e0f378ff9ad3 (patch) | |
| tree | 55d18a33f3446d17a94bd00ba584838a9d9e8c61 /compiler | |
| parent | 9be5fadb74613b465b144e77db1ed9b4696e1394 (diff) | |
| download | haskell-489edbed6891080e09fd2f59a477e0f378ff9ad3.tar.gz | |
make it compile with earlier GHCs
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/cmm/Hoopl/Dataflow.hs | 15 |
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 ----------------------------------------------------------------------------- |
