diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -7,6 +7,11 @@
 The following is information about what major changes have gone into
 each release.
 
+Changes in 2999.20.0.4
+----------------------
+
+* Dependency bumps.
+
 Changes in 2999.20.0.3
 ----------------------
 
diff --git a/Data/GraphViz/Attributes/Arrows.hs b/Data/GraphViz/Attributes/Arrows.hs
--- a/Data/GraphViz/Attributes/Arrows.hs
+++ b/Data/GraphViz/Attributes/Arrows.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 {-# OPTIONS_HADDOCK hide #-}
 {- |
    Module      : Data.GraphViz.Attributes.Arrows
@@ -16,8 +16,11 @@
 import Data.GraphViz.Parsing
 import Data.GraphViz.Printing
 
-import Data.Maybe  (isJust)
+import Data.Maybe (isJust)
+
+#if !MIN_VERSION_base (4,13,0)
 import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/Colors.hs b/Data/GraphViz/Attributes/Colors.hs
--- a/Data/GraphViz/Attributes/Colors.hs
+++ b/Data/GraphViz/Attributes/Colors.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 
 {- |
    Module      : Data.GraphViz.Attributes.Colors
@@ -54,10 +54,13 @@
 
 import           Data.Char      (isHexDigit)
 import           Data.Maybe     (isJust)
-import           Data.Monoid    ((<>))
 import qualified Data.Text.Lazy as T
 import           Data.Word      (Word8)
 import           Numeric        (readHex, showHex)
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/Complete.hs b/Data/GraphViz/Attributes/Complete.hs
--- a/Data/GraphViz/Attributes/Complete.hs
+++ b/Data/GraphViz/Attributes/Complete.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 
 {- |
    Module      : Data.GraphViz.Attributes.Complete
@@ -206,12 +206,15 @@
 
 import           Data.List      (partition)
 import           Data.Maybe     (isNothing)
-import           Data.Monoid    ((<>))
 import qualified Data.Set       as S
 import           Data.Text.Lazy (Text)
 import qualified Data.Text.Lazy as T
 import           Data.Version   (Version(..))
 import           Data.Word      (Word16)
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/HTML.hs b/Data/GraphViz/Attributes/HTML.hs
--- a/Data/GraphViz/Attributes/HTML.hs
+++ b/Data/GraphViz/Attributes/HTML.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings, PatternGuards #-}
+{-# LANGUAGE CPP, OverloadedStrings, PatternGuards #-}
 
 {- |
    Module      : Data.GraphViz.Attributes.HTML
@@ -81,10 +81,13 @@
 import           Data.List      (delete)
 import qualified Data.Map       as Map
 import           Data.Maybe     (catMaybes, listToMaybe)
-import           Data.Monoid    ((<>))
 import qualified Data.Text.Lazy as T
 import           Data.Word      (Word16, Word8)
 import           Numeric        (readHex)
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/Internal.hs b/Data/GraphViz/Attributes/Internal.hs
--- a/Data/GraphViz/Attributes/Internal.hs
+++ b/Data/GraphViz/Attributes/Internal.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 {-# OPTIONS_HADDOCK hide #-}
 
 {- |
@@ -28,8 +28,11 @@
 import           Data.Map       (Map)
 import qualified Data.Map       as Map
 import           Data.Maybe     (isNothing)
-import           Data.Monoid    ((<>))
 import           Data.Text.Lazy (Text)
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Attributes/Values.hs b/Data/GraphViz/Attributes/Values.hs
--- a/Data/GraphViz/Attributes/Values.hs
+++ b/Data/GraphViz/Attributes/Values.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 {-# OPTIONS_HADDOCK hide #-}
 {- |
    Module      : Data.GraphViz.Attributes.Values
@@ -24,11 +24,14 @@
 
 import           Data.List       (intercalate)
 import           Data.Maybe      (isJust)
-import           Data.Monoid     ((<>))
 import           Data.Text.Lazy  (Text)
 import qualified Data.Text.Lazy  as T
 import           Data.Word       (Word16)
 import           System.FilePath (searchPathSeparator, splitSearchPath)
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 
diff --git a/Data/GraphViz/Internal/State.hs b/Data/GraphViz/Internal/State.hs
--- a/Data/GraphViz/Internal/State.hs
+++ b/Data/GraphViz/Internal/State.hs
@@ -123,10 +123,12 @@
                                NodeAttribute     -> nodeColor
                                EdgeAttribute     -> edgeColor
 
--- | The default separators for 'LayerSep'.
+-- | The default separators for
+--   'Data.GraphViz.Attributes.Complete.LayerSep'.
 defLayerSep :: [Char]
 defLayerSep = [' ', ':', '\t']
 
--- | The default separators for 'LayerListSep'.
+-- | The default separators for
+--   'Data.GraphViz.Attributes.Complete.LayerListSep'.
 defLayerListSep :: [Char]
 defLayerListSep = [',']
diff --git a/Data/GraphViz/Printing.hs b/Data/GraphViz/Printing.hs
--- a/Data/GraphViz/Printing.hs
+++ b/Data/GraphViz/Printing.hs
@@ -101,7 +101,7 @@
 import Data.Monoid         (Monoid(..))
 #endif
 
-#if MIN_VERSION_base (4,9,0)
+#if MIN_VERSION_base (4,9,0) && !MIN_VERSION_base (4,13,0)
 import Data.Semigroup (Semigroup(..))
 #else
 import Data.Monoid ((<>))
diff --git a/Data/GraphViz/Types/Internal/Common.hs b/Data/GraphViz/Types/Internal/Common.hs
--- a/Data/GraphViz/Types/Internal/Common.hs
+++ b/Data/GraphViz/Types/Internal/Common.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP, OverloadedStrings #-}
 {-# OPTIONS_HADDOCK hide #-}
 
 {- |
@@ -44,10 +44,13 @@
 
 import           Control.Monad       (unless, when)
 import           Data.Maybe          (isJust)
-import           Data.Monoid         ((<>))
 import           Data.Text.Lazy      (Text)
 import qualified Data.Text.Lazy      as T
 import qualified Data.Text.Lazy.Read as T
+
+#if !MIN_VERSION_base (4,13,0)
+import Data.Monoid ((<>))
+#endif
 
 -- -----------------------------------------------------------------------------
 -- This is re-exported by Data.GraphViz.Types
diff --git a/Data/GraphViz/Types/Monadic.hs b/Data/GraphViz/Types/Monadic.hs
--- a/Data/GraphViz/Types/Monadic.hs
+++ b/Data/GraphViz/Types/Monadic.hs
@@ -90,7 +90,7 @@
 import Data.Monoid         (Monoid(..))
 #endif
 
-#if MIN_VERSION_base (4,9,0)
+#if MIN_VERSION_base (4,9,0) && !MIN_VERSION_base (4,13,0)
 import Data.Semigroup (Semigroup(..))
 #endif
 
diff --git a/graphviz.cabal b/graphviz.cabal
--- a/graphviz.cabal
+++ b/graphviz.cabal
@@ -1,5 +1,5 @@
 Name:               graphviz
-Version:            2999.20.0.3
+Version:            2999.20.0.4
 Stability:          Beta
 Synopsis:           Bindings to Graphviz for graph visualisation.
 Description: {
@@ -40,7 +40,7 @@
 Build-Type:         Simple
 Tested-With:        GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2,
                     GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.2,
-                    GHC == 8.6.2
+                    GHC == 8.6.2, GHC == 8.8.2, GHC == 8.10.1
 Cabal-Version:      1.14
 Extra-Source-Files: TODO.md
                     Changelog.md
@@ -66,7 +66,7 @@
                            temporary >=1.1 && <1.4,
                            fgl >= 5.4 && < 5.8,
                            filepath,
-                           polyparse >=1.9 && <1.13,
+                           polyparse >=1.9 && <1.14,
                            bytestring >= 0.9 && < 0.11,
                            colour == 2.3.*,
                            mtl == 2.*,
@@ -127,9 +127,9 @@
                            fgl >= 5.5.0.0,
                            fgl-arbitrary == 0.2.*,
                            filepath,
-                           hspec >= 2.1 && < 2.7,
+                           hspec >= 2.1 && < 2.8,
                            text,
-                           QuickCheck >= 2.3 && < 2.13
+                           QuickCheck >= 2.3 && < 2.14
         Build-Tool-Depends: hspec-discover:hspec-discover == 2.*
 
         hs-Source-Dirs:    tests
