diff --git a/src/Network/Wai/Middleware/ContentType.hs b/src/Network/Wai/Middleware/ContentType.hs
--- a/src/Network/Wai/Middleware/ContentType.hs
+++ b/src/Network/Wai/Middleware/ContentType.hs
@@ -55,9 +55,9 @@
               -> Maybe FileExt
               -> FileExtMap
               -> Maybe Response
-lookupFileExt mAcceptBS mFe map =
+lookupFileExt mAcceptBS mFe m =
     getFirst
-  . foldMap (\fe -> First $ runResponseVia <$> HM.lookup fe map)
+  . foldMap (\fe -> First $ runResponseVia <$> HM.lookup fe m)
   . findFE
   $ maybe allFileExts possibleFileExts mAcceptBS
   where
@@ -69,9 +69,9 @@
 
 fileExtsToMiddleware :: Monad m => FileExtListenerT m a -> MiddlewareT m
 fileExtsToMiddleware xs app req respond = do
-  map <- execFileExtListenerT xs
+  m <- execFileExtListenerT xs
   let mAcceptHeader = lookup "Accept" (requestHeaders req)
       mFileExt      = getFileExt (pathInfo req)
-  case lookupFileExt mAcceptHeader mFileExt map of
+  case lookupFileExt mAcceptHeader mFileExt m of
     Nothing -> app req respond
     Just r  -> respond r
diff --git a/src/Network/Wai/Middleware/ContentType/ByteString.hs b/src/Network/Wai/Middleware/ContentType/ByteString.hs
--- a/src/Network/Wai/Middleware/ContentType/ByteString.hs
+++ b/src/Network/Wai/Middleware/ContentType/ByteString.hs
@@ -5,7 +5,6 @@
 import           Network.Wai                             (Response, responseLBS)
 
 import qualified Data.ByteString.Lazy                    as LBS
-import qualified Blaze.ByteString.Builder.ByteString     as BU
 import qualified Data.HashMap.Lazy                       as HM
 
 
diff --git a/src/Network/Wai/Middleware/ContentType/Clay.hs b/src/Network/Wai/Middleware/ContentType/Clay.hs
--- a/src/Network/Wai/Middleware/ContentType/Clay.hs
+++ b/src/Network/Wai/Middleware/ContentType/Clay.hs
@@ -26,7 +26,7 @@
       (c,as,i)
       status200
       [("Content-Type","text/css")]
-      (\(c,as,i) -> clayOnly c as i)
+      (\(c',as',i') -> clayOnly c' as' i')
 
 {-# INLINEABLE clay #-}
 
diff --git a/src/Network/Wai/Middleware/ContentType/Json.hs b/src/Network/Wai/Middleware/ContentType/Json.hs
--- a/src/Network/Wai/Middleware/ContentType/Json.hs
+++ b/src/Network/Wai/Middleware/ContentType/Json.hs
@@ -6,7 +6,7 @@
 
 import           Network.Wai.Middleware.ContentType.Types
 import           Network.Wai.Middleware.ContentType.ByteString
-import           Network.HTTP.Types                      (status200, Status, ResponseHeaders)
+import           Network.HTTP.Types                      (Status, ResponseHeaders)
 import           Network.Wai                             (Response)
 
 import qualified Data.Aeson                              as A
diff --git a/src/Network/Wai/Middleware/ContentType/Types.hs b/src/Network/Wai/Middleware/ContentType/Types.hs
--- a/src/Network/Wai/Middleware/ContentType/Types.hs
+++ b/src/Network/Wai/Middleware/ContentType/Types.hs
@@ -170,6 +170,10 @@
              , MonadMask, MonadLogger, MonadUrl b f, MFunctor
              )
 
+instance Monad m => Monoid (FileExtListenerT m ()) where
+  mempty = FileExtListenerT $ put mempty
+  mappend x y = x >> y
+
 deriving instance (MonadResource m, MonadBase IO m) => MonadResource (FileExtListenerT m)
 
 instance MonadTransControl FileExtListenerT where
@@ -191,9 +195,9 @@
                    -> FileExtListenerT m a
                    -> FileExtListenerT m a
 mapFileExtMap f (FileExtListenerT xs) = do
-  map      <- get
-  (x,map') <- lift (runStateT xs (f map))
-  put map'
+  m      <- get
+  (x,m') <- lift (runStateT xs (f m))
+  put m'
   return x
 
 
diff --git a/test/Network/Wai/Middleware/ContentTypeSpec.hs b/test/Network/Wai/Middleware/ContentTypeSpec.hs
--- a/test/Network/Wai/Middleware/ContentTypeSpec.hs
+++ b/test/Network/Wai/Middleware/ContentTypeSpec.hs
@@ -162,8 +162,8 @@
   fileExtsToMiddleware allExamples $
   (\req respond -> respond (textOnly "Something went wrong" status406 []))
 
-allExamples :: FileExtListenerT IO ()
-allExamples = do
+allExamples :: FileExtListenerT Response IO ()
+allExamples = mapResponse (\f -> f status200 []) $ do
   text "Text!"
   json ("Json!" :: T.Text)
   lucid (L.toHtmlRaw ("Html!" :: T.Text))
diff --git a/wai-middleware-content-type.cabal b/wai-middleware-content-type.cabal
--- a/wai-middleware-content-type.cabal
+++ b/wai-middleware-content-type.cabal
@@ -1,14 +1,19 @@
 Name:                   wai-middleware-content-type
-Version:                0.4.0
+Version:                0.4.1
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
 License-File:           LICENSE
-Synopsis:               A simple WAI library for responding with content.
+Synopsis:               Route to different middlewares based on the incoming Accept header.
 -- Description:
 Cabal-Version:          >= 1.10
 Build-Type:             Simple
 Category:               Web
+
+
+Flag Example
+  Description:          Build a trivial example
+  Default:              False
 
 
 Library
