@@ -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