diff --git a/apiary-websockets.cabal b/apiary-websockets.cabal
--- a/apiary-websockets.cabal
+++ b/apiary-websockets.cabal
@@ -1,5 +1,5 @@
 name:                apiary-websockets
-version:             0.11.5
+version:             0.16.0
 synopsis:            websockets support for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/websockets.hs>
@@ -20,7 +20,7 @@
   exposed-modules:     Web.Apiary.WebSockets
   other-modules:       
   build-depends:       base               >=4.6   && <4.8
-                     , apiary             >=0.8   && <0.16
+                     , apiary             >=0.16  && <0.17
                      , wai-websockets     >=2.1   && <3.1
                      , websockets         >=0.8   && <0.9
 
diff --git a/src/Web/Apiary/WebSockets.hs b/src/Web/Apiary/WebSockets.hs
--- a/src/Web/Apiary/WebSockets.hs
+++ b/src/Web/Apiary/WebSockets.hs
@@ -26,32 +26,32 @@
     )
 
 wsToApp :: Monad m => WS.ConnectionOptions 
-        -> Fn xs WS.ServerApp -> SList xs -> ActionT m ()
+        -> Fn xs WS.ServerApp -> SList xs -> ActionT exts m ()
 wsToApp conn srv args = getRequest >>= \req ->
     case WS.websocketsApp conn (apply srv args) req of
         Nothing -> return ()
         Just r  -> stopWith r
 
 -- | websocket only action. since 0.8.0.0.
-webSockets' :: (Functor m, Monad m, Functor n, Monad n) => WS.ConnectionOptions
-            -> Fn xs WS.ServerApp -> ApiaryT xs n m ()
+webSockets' :: (Monad m, Monad actM) => WS.ConnectionOptions
+            -> Fn prms WS.ServerApp -> ApiaryT exts prms actM m ()
 webSockets' conn srv = action' $ wsToApp conn srv
 
 -- | websocket only action. since 0.8.0.0.
-webSockets :: (Functor m, Monad m, Functor n, Monad n)
-           => Fn xs WS.ServerApp -> ApiaryT xs n m ()
+webSockets :: (Monad m, Monad n)
+           => Fn xs WS.ServerApp -> ApiaryT exts xs n m ()
 webSockets = webSockets' WS.defaultConnectionOptions
 
-actionWithWebSockets' :: (Functor m, Monad m, Functor n, Monad n)
+actionWithWebSockets' :: (Monad m, Monad actM)
                       => WS.ConnectionOptions 
-                      -> Fn xs WS.ServerApp
-                      -> Fn xs (ActionT n ())
-                      -> ApiaryT xs n m ()
+                      -> Fn prms WS.ServerApp
+                      -> Fn prms (ActionT exts actM ())
+                      -> ApiaryT exts prms actM m ()
 actionWithWebSockets' conn srv m =
     action' $ \a -> wsToApp conn srv a >> apply m a
 
-actionWithWebSockets :: (Functor m, Monad m, Functor n, Monad n)
+actionWithWebSockets :: (Monad m, Monad n)
                      => Fn c WS.ServerApp
-                     -> Fn c (ActionT n ())
-                     -> ApiaryT c n m ()
+                     -> Fn c (ActionT exts n ())
+                     -> ApiaryT exts c n m ()
 actionWithWebSockets = actionWithWebSockets' WS.defaultConnectionOptions
