diff --git a/ez-couch.cabal b/ez-couch.cabal
--- a/ez-couch.cabal
+++ b/ez-couch.cabal
@@ -1,5 +1,5 @@
 name:               ez-couch
-version:            0.3.0
+version:            0.3.1
 cabal-version:      >=1.8
 build-type:         Simple
 license:            MIT
diff --git a/src/EZCouch/WriteAction.hs b/src/EZCouch/WriteAction.hs
--- a/src/EZCouch/WriteAction.hs
+++ b/src/EZCouch/WriteAction.hs
@@ -30,7 +30,7 @@
     qps = []
     body = writeOperationsBody ops
 
-writeOperationsBody ops = Aeson.encode $ Aeson.object [("docs", Aeson.Array $ fromList $ map operationJSON ops)]
+writeOperationsBody ops = Aeson.encode $ Aeson.object [("docs", Aeson.Array $ fromList $ fmap operationJSON ops)]
 
 operationJSON (Create id a)
   = Encoding.insertPairs [("_id", toJSON id)] $ toJSON a
@@ -42,7 +42,7 @@
 deleteMultiple :: (MonadAction m, Doc a) => [Persisted a] -> m ()
 deleteMultiple vals = do
   results <- writeOperationsAction $ map toOperation vals
-  let failedIds = map fst $ filter (isNothing . snd) results
+  let failedIds = fmap fst $ filter (isNothing . snd) results
   if null failedIds
     then return ()
     else throwIO $ OperationException $ "Couldn't delete entities by following ids: " ++ show failedIds
diff --git a/src/Network/HTTP/Conduit/Request.hs b/src/Network/HTTP/Conduit/Request.hs
--- a/src/Network/HTTP/Conduit/Request.hs
+++ b/src/Network/HTTP/Conduit/Request.hs
@@ -4,6 +4,7 @@
 import Prelude ()
 import ClassyPrelude
 import Network.HTTP.Conduit
+import Network.HTTP.Types
 
 withHeader (name, value) request
   = request { requestHeaders = headers' }
@@ -21,6 +22,7 @@
   where
     headers' = headersUnion (requestHeaders request) headers
 
+headersUnion :: [Header] -> [Header] -> [Header]
 headersUnion headers1 headers2
   = headers1 ++ new
   where 
