diff --git a/src/Network/Wai/Middleware/Verbs.hs b/src/Network/Wai/Middleware/Verbs.hs
--- a/src/Network/Wai/Middleware/Verbs.hs
+++ b/src/Network/Wai/Middleware/Verbs.hs
@@ -50,7 +50,6 @@
   , -- * Utilities
     lookupVerb
   , getVerb
-  , mapVerbs
   ) where
 
 
@@ -81,13 +80,7 @@
 -- * Types
 
 -- | A map from an HTTP verb, to a result and uploading method.
-newtype VerbMap r = VerbMap
-  { getVerbMap :: HashMap Verb r
-  } deriving (Functor)
-
-instance Monoid r => Monoid (VerbMap r) where
-  mempty = VerbMap mempty
-  mappend (VerbMap x) (VerbMap y) = VerbMap $ HM.unionWith (<>) x y
+type VerbMap r = HashMap Verb r
 
 type Verb = StdMethod
 
@@ -111,7 +104,7 @@
 
 -- | Take the monadic partial result of @lookupVerb@, and actually h the upload.
 lookupVerb :: Verb -> VerbMap r -> Maybe r
-lookupVerb v = HM.lookup v . getVerbMap
+lookupVerb = HM.lookup
 
 {-# INLINEABLE lookupVerb #-}
 
@@ -139,7 +132,7 @@
 
 deriving instance (MonadResource m, MonadBase IO m) => MonadResource (VerbListenerT r m)
 
-execVerbListenerT :: (Monad m, Monoid r) => VerbListenerT r m a -> m (VerbMap r)
+execVerbListenerT :: (Monad m) => VerbListenerT r m a -> m (VerbMap r)
 execVerbListenerT xs = execStateT (runVerbListenerT xs) mempty
 
 {-# INLINEABLE execVerbListenerT #-}
@@ -155,7 +148,7 @@
 get :: ( Monad m
        , Monoid r
        ) => r -> VerbListenerT r m ()
-get r = tell' . VerbMap $ HM.singleton GET r
+get r = tell' $ HM.singleton GET r
 
 {-# INLINEABLE get #-}
 
@@ -163,7 +156,7 @@
 post :: ( Monad m
         , Monoid r
         ) => r -> VerbListenerT r m ()
-post r = tell' . VerbMap $ HM.singleton POST r
+post r = tell' $ HM.singleton POST r
 
 {-# INLINEABLE post #-}
 
@@ -171,7 +164,7 @@
 put :: ( Monad m
        , Monoid r
        ) => r -> VerbListenerT r m ()
-put r = tell' . VerbMap $ HM.singleton PUT r
+put r = tell' $ HM.singleton PUT r
 
 {-# INLINEABLE put #-}
 
@@ -179,18 +172,11 @@
 delete :: ( Monad m
           , Monoid r
           ) => r -> VerbListenerT r m ()
-delete r = tell' . VerbMap $ HM.singleton DELETE r
+delete r = tell' $ HM.singleton DELETE r
 
 {-# INLINEABLE delete #-}
 
-tell' :: (Monoid w, MonadState w m) => w -> m ()
-tell' x = modify' (<> x)
+tell' :: (Monoid r, MonadState (VerbMap r) m) => VerbMap r -> m ()
+tell' x = modify' (\y -> HM.unionWith (<>) y x)
 
 {-# INLINEABLE tell' #-}
-
-mapVerbs :: (Monad m, Monoid r, Monoid s) => (r -> s) ->  VerbListenerT r m () -> VerbListenerT s m ()
-mapVerbs f xs = do
-  vmap <- lift $ execVerbListenerT xs
-  tell' $ f <$> vmap
-
-{-# INLINEABLE mapVerbs #-}
diff --git a/wai-middleware-verbs.cabal b/wai-middleware-verbs.cabal
--- a/wai-middleware-verbs.cabal
+++ b/wai-middleware-verbs.cabal
@@ -1,5 +1,5 @@
 Name:                   wai-middleware-verbs
-Version:                0.3.1
+Version:                0.3.2
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
