diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.4.2.0
+=======
+* Allow newer bloodhound, aeson, async.
+
 0.4.1.0
 =======
 * Fix bug where index was created in `mkEsScribe` when it would not be used due to index sharding.
diff --git a/katip-elasticsearch.cabal b/katip-elasticsearch.cabal
--- a/katip-elasticsearch.cabal
+++ b/katip-elasticsearch.cabal
@@ -1,7 +1,7 @@
 name:                katip-elasticsearch
 synopsis:            ElasticSearch scribe for the Katip logging framework.
 description:         See README.md for more details.
-version:             0.4.1.0
+version:             0.4.2.0
 license:             BSD3
 license-file:        LICENSE
 author:              Ozgun Ataman, Michael Xavier
@@ -35,13 +35,13 @@
     Katip.Scribes.ElasticSearch.Internal
   build-depends:
       base >=4.6 && <5
-    , katip >= 0.2.0.0 && < 0.6
-    , bloodhound >= 0.13.0.0 && < 0.16
+    , katip >= 0.2.0.0 && < 0.7
+    , bloodhound >= 0.13.0.0 && < 0.17
     , uuid >= 1.3.12 && < 1.4
-    , aeson >=0.6 && <1.3
+    , aeson >=0.6
     , stm >= 2.4.3 && < 2.5
     , stm-chans >= 3.0.0.2 && < 3.1
-    , async >= 2.0.1.0 && < 2.2
+    , async >= 2.0.1.0 && < 3.0
     , enclosed-exceptions >= 1.0.0 && < 1.1
     , http-client >= 0.3 && < 0.6
     , text >= 0.11 && < 1.3
@@ -57,7 +57,6 @@
   hs-source-dirs:      src
   default-language:    Haskell2010
   hs-source-dirs:      src
-  default-language:    Haskell2010
   if flag(lib-Werror)
     ghc-options: -Wall -Werror
 
diff --git a/src/Katip/Scribes/ElasticSearch/Annotations.hs b/src/Katip/Scribes/ElasticSearch/Annotations.hs
--- a/src/Katip/Scribes/ElasticSearch/Annotations.hs
+++ b/src/Katip/Scribes/ElasticSearch/Annotations.hs
@@ -12,7 +12,7 @@
 import qualified Data.Foldable       as FT
 import qualified Data.HashMap.Strict as HM
 import           Data.Maybe
-import           Data.Monoid
+import           Data.Monoid         as M
 import           Data.Scientific     (isFloating)
 import           Data.Text           (Text)
 import qualified Data.Text           as T
@@ -65,7 +65,7 @@
   where
     go (k, Object o) = (k, Object $ annotateKeys o)
     go (k, Array a)  = (k, Array (annotateValue <$> a))
-    go (k, s@(String _)) = (k <> stringAnn, s)
+    go (k, s@(String _)) = (k M.<> stringAnn, s)
     go (k, n@(Number sci)) = if isFloating sci
                              then (k <> doubleAnn, n)
                              else (k <> longAnn, n)
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -26,7 +26,7 @@
 import           Data.Aeson.Types
 import           Data.ByteString.Lazy                    (ByteString)
 import qualified Data.HashMap.Strict                     as HM
-import           Data.Monoid
+import           Data.Monoid                             as M
 import           Data.Scientific
 import           Data.Tagged
 import           Data.Text                               (Text)
@@ -230,7 +230,7 @@
 esTests prx = testGroup "elasticsearch scribe"
   [
     withSearch' (\c -> c { essIndexSharding = NoIndexSharding}) prx $ \setup -> testCase "it flushes to elasticsearch" $ withTestLogging prx setup $ \done -> do
-       $(logT) (ExampleCtx True) mempty InfoS "A test message"
+       $(logT) (ExampleCtx True) M.mempty InfoS "A test message"
        liftIO $ do
          void done
          logs <- getLogs prx
