diff --git a/apiary-purescript.cabal b/apiary-purescript.cabal
--- a/apiary-purescript.cabal
+++ b/apiary-purescript.cabal
@@ -1,5 +1,5 @@
 name:                apiary-purescript
-version:             0.16.0
+version:             0.17.0
 synopsis:            purescript compiler for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/pureScript.hs>
@@ -19,19 +19,19 @@
 library
   exposed-modules:     Web.Apiary.PureScript
   other-modules:       Web.Apiary.PureScript.Internal
-  build-depends:       base                 >=4.6  && <4.8
+  build-depends:       base                 >=4.6   && <4.8
                      , template-haskell
-                     , apiary               >=0.16 && <0.17
-                     , purescript           >=0.5  && <0.6
+                     , apiary               >=0.17  && <0.18
+                     , purescript           >=0.5.5 && <0.6
 
-                     , filepath             >=1.3  && <1.4
-                     , utf8-string          >=0.3  && <0.4
-                     , text                 >=1.1  && <1.2
-                     , bytestring           >=0.10 && <0.11
-                     , unordered-containers >=0.2  && <0.3
-                     , parsec               >=3.1  && <3.2
-                     , Glob                 >=0.7  && <0.8
-                     , data-default-class   >=0.0  && <0.1
+                     , filepath             >=1.3   && <1.4
+                     , utf8-string          >=0.3   && <0.4
+                     , text                 >=1.1   && <1.3
+                     , bytestring           >=0.10  && <0.11
+                     , unordered-containers >=0.2   && <0.3
+                     , parsec               >=3.1   && <3.2
+                     , Glob                 >=0.7   && <0.8
+                     , data-default-class   >=0.0   && <0.1
 
   hs-source-dirs:      src
   ghc-options:         -O2 -Wall
diff --git a/src/Web/Apiary/PureScript.hs b/src/Web/Apiary/PureScript.hs
--- a/src/Web/Apiary/PureScript.hs
+++ b/src/Web/Apiary/PureScript.hs
@@ -14,7 +14,7 @@
 import Data.Apiary.Proxy
 
 initPureScript :: MonadIO m => I.PureScriptConfig -> Initializer' m I.PureScript
-initPureScript conf = initializer $ I.withPureScript conf $ return 
+initPureScript = initializer' . I.makePureScript
 
 pureScript :: (Has I.PureScript exts, MonadIO m) => FilePath -> ActionT exts m ()
 pureScript m = getExt (Proxy :: Proxy I.PureScript) >>= flip I.pureScript m
diff --git a/src/Web/Apiary/PureScript/Internal.hs b/src/Web/Apiary/PureScript/Internal.hs
--- a/src/Web/Apiary/PureScript/Internal.hs
+++ b/src/Web/Apiary/PureScript/Internal.hs
@@ -70,11 +70,11 @@
     , compiled  :: IORef (H.HashMap FilePath String)
     }
 
-withPureScript :: MonadIO m => PureScriptConfig -> (PureScript -> m b) -> m b
-withPureScript conf m = do
+makePureScript :: MonadIO m => PureScriptConfig -> m PureScript
+makePureScript conf = do
     ir <- liftIO $ mapM (\p -> (p,) <$> compile conf p) (initialCompiles conf)
     p  <- liftIO $ PureScript conf <$> newIORef (H.fromList ir)
-    m p
+    return p
 
 defaultPreludePath :: FilePath
 defaultPreludePath = purescriptDatadir </> "prelude/prelude.purs"
@@ -97,7 +97,7 @@
 compile opt p = do
     mods <- pscModules opt
     mn   <- readPscInput p
-    case P.compile (pureScriptOptions opt) $ mn ++ mods of
+    case P.compile (pureScriptOptions opt) (mn ++ mods) [] of
         Left l           -> throwIO (CompileError l)
         Right (js, _, _) -> return js
 
