diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,11 @@
-## [v1.4.1.1](https://github.com/diagrams/diagrams-svg/tree/v1.4.1) (2017-08-23)
+## [v1.4.2](https://github.com/diagrams/diagrams-svg/tree/v1.4.2) (2018-05-09)
 
-- Allow base-4.10 and optparse-applicative-0.14
+- Allow `base-4.11` (GHC 8.4) and `lens-4.16`
+- Add `Semigroup (Render SVG V2 n)` instance
+
+## [v1.4.1.1](https://github.com/diagrams/diagrams-svg/tree/v1.4.1.1) (2017-08-23)
+
+- Allow `base-4.10` and `optparse-applicative-0.14`
 - Fix gradients applied to text ([#98](https://github.com/diagrams/diagrams-svg/issues/98))
 
 ## [v1.4.1](https://github.com/diagrams/diagrams-svg/tree/v1.4.1) (2016-10-26)
diff --git a/diagrams-svg.cabal b/diagrams-svg.cabal
--- a/diagrams-svg.cabal
+++ b/diagrams-svg.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-svg
-Version:             1.4.1.1
+Version:             1.4.2
 Synopsis:            SVG backend for diagrams drawing EDSL.
 Homepage:            http://projects.haskell.org/diagrams/
 License:             BSD3
@@ -12,7 +12,7 @@
 Category:            Graphics
 Build-type:          Simple
 Cabal-version:       >=1.10
-Tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.1
+Tested-with:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.2
 Description:         This package provides a modular backend for rendering
                      diagrams created with the diagrams EDSL to SVG
                      files.  It uses @lucid-svg@ to be a native
@@ -40,7 +40,7 @@
                        Diagrams.Backend.SVG.CmdLine
   Other-modules:       Graphics.Rendering.SVG
   Hs-source-dirs:      src
-  Build-depends:       base                 >= 4.3   && < 4.11
+  Build-depends:       base                 >= 4.3   && < 4.12
                      , filepath
                      , mtl                  >= 1     && < 2.3
                      , bytestring           >= 0.9   && < 1.0
@@ -54,7 +54,7 @@
                      , JuicyPixels          >= 3.1.5 && < 3.3
                      , split                >= 0.1.2 && < 0.3
                      , containers           >= 0.3   && < 0.6
-                     , lens                 >= 4.0   && < 4.16
+                     , lens                 >= 4.0   && < 4.17
                      , hashable             >= 1.1   && < 1.3
                      , optparse-applicative >= 0.13  && < 0.15
                      , semigroups           >= 0.13  && < 0.19
diff --git a/src/Diagrams/Backend/SVG.hs b/src/Diagrams/Backend/SVG.hs
--- a/src/Diagrams/Backend/SVG.hs
+++ b/src/Diagrams/Backend/SVG.hs
@@ -194,12 +194,17 @@
 runRenderM o s = flip evalState initialSvgRenderState
                $ runReaderT  s (initialEnvironment o)
 
-instance Monoid (Render SVG V2 n) where
-  mempty = R $ return mempty
-  R r1 `mappend` R r2_ = R $ do
+instance Semigroup (Render SVG V2 n) where
+  R r1 <> R r2_ = R $ do
     svg1 <- r1
     svg2 <- r2_
     return (svg1 `mappend` svg2)
+
+instance Monoid (Render SVG V2 n) where
+  mempty = R $ return mempty
+#if !MIN_VERSION_base(4,11,0)
+  mappend = (<>)
+#endif
 
 -- Handle clip attributes.
 --
diff --git a/src/Graphics/Rendering/SVG.hs b/src/Graphics/Rendering/SVG.hs
--- a/src/Graphics/Rendering/SVG.hs
+++ b/src/Graphics/Rendering/SVG.hs
@@ -45,7 +45,9 @@
 #endif
 
 import           Data.Maybe                  (fromMaybe)
+#if !MIN_VERSION_base(4,11,0)
 import           Data.Monoid
+#endif
 
 -- from diagrams-core
 import           Diagrams.Core.Transform     (matrixHomRep)
