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:             1.1.0
+version:             1.2.0
 synopsis:            purescript compiler for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/pureScript.hs>
@@ -21,8 +21,8 @@
   other-modules:       Web.Apiary.PureScript.Internal
   build-depends:       base                 >=4.6   && <4.8
                      , template-haskell
-                     , apiary               >=1.1   && <1.2
-                     , purescript           >=0.5.6 && <0.5.7
+                     , apiary               >=1.1   && <1.3
+                     , purescript           ==0.6.1.*
 
                      , filepath             >=1.3   && <1.4
                      , utf8-string          >=0.3   && <0.4
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
@@ -1,6 +1,5 @@
-{-# LANGUAGE ConstraintKinds #-}
-{-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE Rank2Types #-}
 
 module Web.Apiary.PureScript
     ( I.PureScriptConfig(..)
@@ -8,11 +7,11 @@
     , pureScript
     ) where
 
-import Web.Apiary
+import Web.Apiary(MonadIO(..))
+import Control.Monad.Apiary.Action(ActionT)
 import qualified Web.Apiary.PureScript.Internal as I
-import Data.Apiary.Extension
-import Data.Apiary.Compat
-import Control.Monad.Apiary.Action
+import Data.Apiary.Extension(Initializer', initializer', Has, getExt)
+import Data.Apiary.Compat(Proxy(..))
 
 initPureScript :: MonadIO m => I.PureScriptConfig -> Initializer' m I.PureScript
 initPureScript = initializer' . I.makePureScript
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
@@ -1,29 +1,30 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE TupleSections #-}
-{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE CPP #-}
 
 module Web.Apiary.PureScript.Internal where
 
-import System.FilePath
+import System.FilePath(takeDirectory, (</>))
 import qualified System.FilePath.Glob as G
 import qualified System.IO.UTF8 as U
 
-import Language.Haskell.TH
+import qualified Language.Haskell.TH as TH
 import qualified Language.PureScript as P
 
-import Control.Exception
-import Control.Applicative
+import Control.Monad.Apiary.Action(ActionT, contentType, string, bytes)
+import Control.Exception(Exception, throwIO, try)
+import Control.Applicative((<$>))
 
-import Web.Apiary
+import Web.Apiary(MonadIO(..))
+import Data.Apiary.Extension(Extension)
 
-import Data.Default.Class
-import Data.IORef
-import Data.Typeable
-import Data.Apiary.Extension
+import Data.Default.Class(Default(def))
+import Data.IORef(IORef, newIORef, readIORef, atomicModifyIORef')
+import Data.Typeable(Typeable)
 import qualified Data.HashMap.Strict as H
 import qualified Text.Parsec.Error as P
 
@@ -36,7 +37,7 @@
 instance Exception PureScriptException
 
 purescriptDatadir :: FilePath
-purescriptDatadir = takeDirectory $(stringE =<< runIO Path.getDataDir) </> "purescript-" ++ VERSION_purescript
+purescriptDatadir = takeDirectory $(TH.stringE =<< TH.runIO Path.getDataDir) </> "purescript-" ++ VERSION_purescript
 
 defaultPatterns :: [G.Pattern]
 defaultPatterns = map G.compile 
