diff --git a/preamble.cabal b/preamble.cabal
--- a/preamble.cabal
+++ b/preamble.cabal
@@ -1,5 +1,5 @@
 name:                  preamble
-version:               0.0.39
+version:               0.0.40
 synopsis:              Yet another prelude.
 description:           A prelude built on basic-prelude.
 homepage:              https://github.com/swift-nav/preamble
@@ -28,31 +28,31 @@
                      , Preamble.Types.Trans
   default-language:    Haskell2010
   ghc-options:         -Wall
-  build-depends:       MonadRandom
-                     , aeson
-                     , base == 4.8.*
-                     , basic-prelude
-                     , exceptions
-                     , fast-logger
-                     , lens
-                     , monad-control
-                     , monad-logger
-                     , mtl
-                     , network
-                     , resourcet
-                     , safe
-                     , template-haskell
-                     , text
-                     , text-manipulate
-                     , time
-                     , transformers-base
-                     , unordered-containers
-                     , uuid
+  build-depends:       MonadRandom          >= 0.4.2
+                     , aeson                >= 0.11
+                     , base                 >= 4.8    && < 5
+                     , basic-prelude        >= 0.5.2
+                     , exceptions           >= 0.8.2
+                     , fast-logger          >= 2.4
+                     , lens                 >= 4.13
+                     , monad-control        >= 1.0
+                     , monad-logger         >= 0.3.17
+                     , mtl                  >= 2.2.1
+                     , network              >= 2.6.2
+                     , resourcet            >= 1.1.7
+                     , safe                 >= 0.3.9
+                     , template-haskell     >= 2.10
+                     , text                 >= 1.2.2
+                     , text-manipulate      >= 0.2
+                     , time                 >= 1.5
+                     , transformers-base    >= 0.4.4
+                     , unordered-containers >= 0.2.5
+                     , uuid                 >= 1.3.11
 
 executable shake-preamble
   main-is:             Shakefile.hs
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
-  build-depends:       base == 4.8.*
+  build-depends:       base
                      , shakers
   default-language:    Haskell2010
 
diff --git a/src/Preamble/Stats.hs b/src/Preamble/Stats.hs
--- a/src/Preamble/Stats.hs
+++ b/src/Preamble/Stats.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE FlexibleContexts  #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -22,7 +23,11 @@
 stats metric name value tags = do
   labels <- (<> tags) <$> view scLabels
   prefix <- ap (`bool` mempty) T.null <$> view scPrefix
+#if MIN_VERSION_basic_prelude(0,6,1)
+  let statsd = prefix <> name -:- textFromString (show value) -|- metric
+#else
   let statsd = prefix <> name -:- show value -|- metric
+#endif
       tagged = T.intercalate "," $ flip map labels $ uncurry (-:-)
   stat <- view scStat
   liftIO $ stat $ encodeUtf8 $ bool (statsd -|- "#" <> tagged) statsd $ null labels
diff --git a/src/Preamble/Trace.hs b/src/Preamble/Trace.hs
--- a/src/Preamble/Trace.hs
+++ b/src/Preamble/Trace.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE FlexibleContexts  #-}
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -17,7 +18,11 @@
 
 import           Control.Monad.Logger
 import           Data.Aeson
+#if MIN_VERSION_aeson(1,0,2)
+import           Data.Aeson.Text
+#else
 import           Data.Aeson.Encode
+#endif
 import qualified Data.HashMap.Strict    as M
 import           Data.Text              hiding (singleton)
 import qualified Data.Text.Lazy         as LT
