diff --git a/src/Network/Wai/Trans.hs b/src/Network/Wai/Trans.hs
--- a/src/Network/Wai/Trans.hs
+++ b/src/Network/Wai/Trans.hs
@@ -38,14 +38,20 @@
 
 
 import           Network.Wai
+import           Network.Wai.Handler.WebSockets
+import           Network.WebSockets hiding (Request, Response)
 
 import           Control.Monad.IO.Class
 import           Control.Monad.Catch
 
+
+-- * WAI
+
 -- | Isomorphic to @Kleisli (ContT ResponseReceived m) Request Response@
 type ApplicationT m = Request -> (Response -> m ResponseReceived) -> m ResponseReceived
 type MiddlewareT m = ApplicationT m -> ApplicationT m
 
+-- ** Generalization
 
 liftApplication :: MonadIO m => (forall a. m a -> IO a) -> Application -> ApplicationT m
 liftApplication run app req resp = liftIO (app req (run . resp))
@@ -59,6 +65,8 @@
 runMiddlewareT :: MonadIO m => (forall a. m a -> IO a) -> MiddlewareT m -> Middleware
 runMiddlewareT run mid app = runApplicationT run (mid (liftApplication run app))
 
+-- ** Monad Morphisms
+
 hoistApplicationT :: ( Monad m
                      , Monad n
                      ) => (forall a. m a -> n a)
@@ -77,6 +85,7 @@
 hoistMiddlewareT to from mid =
   hoistApplicationT to from . mid . hoistApplicationT from to
 
+-- ** Exception Catching
 
 catchApplicationT :: ( MonadCatch m
                      , Exception e
@@ -90,7 +99,21 @@
 catchMiddlewareT x f app =
   (x app) `catchApplicationT` (\e -> f e app)
 
+-- ** Utils
+
 readingRequest :: Monad m => (Request -> m ()) -> MiddlewareT m
 readingRequest f app req resp = do
   f req
   app req resp
+
+
+-- * Websockets
+
+type ServerAppT m = PendingConnection -> m ()
+
+-- | Respond with the WebSocket server when applicable, as a middleware
+websocketsOrT :: (MonadIO m) => (forall a. m a -> IO a) -> ConnectionOptions -> ServerAppT m -> MiddlewareT m
+websocketsOrT run cOpts server app req respond =
+  let server' pend = run $ server pend
+      app' = liftApplication run . websocketsOr cOpts server' $ runApplicationT run app
+  in  app' req respond
diff --git a/wai-transformers.cabal b/wai-transformers.cabal
--- a/wai-transformers.cabal
+++ b/wai-transformers.cabal
@@ -1,5 +1,5 @@
 Name:                   wai-transformers
-Version:                0.0.5
+Version:                0.0.5.1
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
@@ -18,7 +18,9 @@
   Build-Depends:        base >= 4.8 && < 5
                       , exceptions
                       , wai
+                      , wai-websockets
                       , transformers
+                      , websockets
 
 Source-Repository head
   Type:                 git
