git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix GHC 7.8 compilation with composition changes
commita41175568d157b9eabaa51f06be7e49dfff6ee14 authorBrian McKenna <brian@brianmckenna.org> dateTue 21 Apr 2015, 07:55 (12 years ago) parent58cfc6c
3 files changed+8−5
src/Language/PureScript/CodeGen/JS/AST.hs+3−2 src/Language/PureScript/CodeGen/JS/Optimizer.hs+3−2 src/Language/PureScript/CodeGen/JS/Optimizer/Inliner.hs+2−1
src/Language/PureScript/CodeGen/JS/AST.hs+3−2
@@ -17,9 +17,10 @@
1717
1818module Language.PureScript.CodeGen.JS.AST where
1919
20−import Control.Monad ((>=>))
20+import Control.Applicative (Applicative, (<$>), (<*>))
2121import Control.Monad.Identity
2222import Data.Data
23+import Data.Traversable (traverse)
2324
2425import Language.PureScript.Comments
2526
@@ -285,7 +286,7 @@ everywhereOnJS f = go
285286everywhereOnJSTopDown :: (JS -> JS) -> JS -> JS
286287everywhereOnJSTopDown f = runIdentity . everywhereOnJSTopDownM (Identity . f)
287288
288−everywhereOnJSTopDownM :: (Monad m) => (JS -> m JS) -> JS -> m JS
289+everywhereOnJSTopDownM :: (Applicative m, Monad m) => (JS -> m JS) -> JS -> m JS
289290everywhereOnJSTopDownM f = f >=> go
290291 where
291292 f' = f >=> go
src/Language/PureScript/CodeGen/JS/Optimizer.hs+3−2
@@ -37,6 +37,7 @@ module Language.PureScript.CodeGen.JS.Optimizer (
3737 optimize
3838) where
3939
40+import Control.Applicative (Applicative)
4041import Control.Monad.Reader (MonadReader, ask, asks)
4142import Control.Monad.Supply.Class (MonadSupply)
4243
@@ -54,12 +55,12 @@ import Language.PureScript.CodeGen.JS.Optimizer.Blocks
5455-- |
5556-- Apply a series of optimizer passes to simplified Javascript code
5657--
57−optimize :: (Monad m, MonadReader (Options mode) m, MonadSupply m) => JS -> m JS
58+optimize :: (Monad m, MonadReader (Options mode) m, Applicative m, MonadSupply m) => JS -> m JS
5859optimize js = do
5960 noOpt <- asks optionsNoOptimizations
6061 if noOpt then return js else optimize' js
6162
62−optimize' :: (Monad m, MonadReader (Options mode) m, MonadSupply m) => JS -> m JS
63+optimize' :: (Monad m, MonadReader (Options mode) m, Applicative m, MonadSupply m) => JS -> m JS
6364optimize' js = do
6465 opts <- ask
6566 untilFixedPoint (inlineArrComposition . applyAll
src/Language/PureScript/CodeGen/JS/Optimizer/Inliner.hs+2−1
@@ -25,6 +25,7 @@ module Language.PureScript.CodeGen.JS.Optimizer.Inliner (
2525 evaluateIifes
2626) where
2727
28+import Control.Applicative (Applicative)
2829import Control.Monad.Supply.Class (MonadSupply, freshName)
2930import Data.Maybe (fromMaybe)
3031
@@ -249,7 +250,7 @@ inlineAppliedVars = everywhereOnJS convert
249250
250251-- (f <<< g $ x) = f (g x)
251252-- (f <<< g) = \x -> f (g x)
252−inlineArrComposition :: (MonadSupply m) => JS -> m JS
253+inlineArrComposition :: (Applicative m, MonadSupply m) => JS -> m JS
253254inlineArrComposition = everywhereOnJSTopDownM convert
254255 where
255256 convert :: (MonadSupply m) => JS -> m JS