diff --git a/apiary-authenticate.cabal b/apiary-authenticate.cabal
--- a/apiary-authenticate.cabal
+++ b/apiary-authenticate.cabal
@@ -1,5 +1,5 @@
 name:                apiary-authenticate
-version:             0.14.0
+version:             0.14.1
 synopsis:            authenticate support for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/auth.hs>
@@ -21,7 +21,7 @@
                        Web.Apiary.Authenticate.Explicit
   other-modules:       Web.Apiary.Authenticate.Internal
   build-depends:       base                 >=4.6   && <4.8
-                     , apiary               >=0.14  && <0.15
+                     , apiary               >=0.14  && <0.16
                      , apiary-clientsession >=0.9   && <0.14
                      , authenticate         >=1.3   && <1.4
                      , http-client          >=0.3   && <0.4
diff --git a/src/Web/Apiary/Authenticate.hs b/src/Web/Apiary/Authenticate.hs
--- a/src/Web/Apiary/Authenticate.hs
+++ b/src/Web/Apiary/Authenticate.hs
@@ -40,7 +40,7 @@
 withAuthWith ms ac m = E.withAuthWith given ms ac (\a -> give a m)
 
 -- | default auth handlers. since 0.8.0.0.
-authHandler :: (Functor n, MonadIO n, HasAuth) => ApiaryT c n m ()
+authHandler :: (Functor m, Monad m, Functor n, MonadIO n, HasAuth) => ApiaryT c n m ()
 authHandler = E.authHandler given
 
 -- | filter which check whether logged in or not, and get id. since 0.7.0.0.
diff --git a/src/Web/Apiary/Authenticate/Internal.hs b/src/Web/Apiary/Authenticate/Internal.hs
--- a/src/Web/Apiary/Authenticate/Internal.hs
+++ b/src/Web/Apiary/Authenticate/Internal.hs
@@ -23,12 +23,11 @@
 import qualified Web.Apiary.Wai as Wai
 
 import Data.Binary
-import Data.Data
+import Data.Data (Data)
 import Data.Maybe
 import Data.List
-import Data.Default.Class
-import Data.Apiary.Proxy
 import Data.Apiary.SList
+import Data.Apiary.Proxy
 
 import Blaze.ByteString.Builder
 import qualified Data.ByteString.Char8 as S
@@ -75,7 +74,7 @@
 withAuthWith sess s conf m = Client.withManager s $ \mgr -> 
     m (Auth mgr conf sess)
 
-authHandler :: (Functor n, MonadIO n) => Auth -> ApiaryT c n m ()
+authHandler :: (Functor m, Monad m, Functor n, MonadIO n) => Auth -> ApiaryT c n m ()
 authHandler Auth{..} = retH >> mapM_ (uncurry go) (providers config)
   where
     pfxPath p = function id (\_ r -> if p `isPrefixOf` Wai.pathInfo r then Just SNil else Nothing)
@@ -137,7 +136,8 @@
     (oirParams r)
     (identifier <$> oirClaimed r)
 
-returnAction :: MonadIO m => Session -> Client.Manager -> S.ByteString -> S.ByteString -> ActionT m ()
+returnAction :: (Functor m, MonadIO m)
+             => Session -> Client.Manager -> S.ByteString -> S.ByteString -> ActionT m ()
 returnAction sess mgr key to = do
     q <- Wai.queryString <$> getRequest
     r <- liftIO . runResourceT $ authenticateClaimed (mapMaybe queryElem q) mgr
