diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 # CHANGELOG
 
+## HEAD
+
+## 3.1.0
+
+### Added
+
+* Additional builds with GHC 8.0.2 and 8.2.1
+* Compatibility with GHC 8.4.1
+
 ## 3.0.0
 
 * GHC 8 compatible release
diff --git a/dom-parser.cabal b/dom-parser.cabal
--- a/dom-parser.cabal
+++ b/dom-parser.cabal
@@ -1,5 +1,5 @@
 name:                dom-parser
-version:             3.0.0
+version:             3.1.0
 synopsis:            Simple monadic DOM parser
 license:             MIT
 license-file:        LICENSE
@@ -9,6 +9,10 @@
 build-type:          Simple
 cabal-version:       >=1.10
 homepage:            https://github.com/typeable/dom-parser
+tested-with:         GHC == 7.10.3
+                   , GHC == 8.0.2
+                   , GHC == 8.2.2
+                   , GHC == 8.4.1
 extra-source-files:  CHANGELOG.md
                    , README.md
 
diff --git a/src/Text/XML/DOM/Parser/Types.hs b/src/Text/XML/DOM/Parser/Types.hs
--- a/src/Text/XML/DOM/Parser/Types.hs
+++ b/src/Text/XML/DOM/Parser/Types.hs
@@ -36,6 +36,7 @@
 import Control.Monad.Except
 import Control.Monad.Reader
 import Data.CaseInsensitive as CI
+import Data.Semigroup
 import Data.String
 import Data.Text as T
 import GHC.Generics (Generic)
@@ -134,7 +135,7 @@
 -- element of the document. Errors are much more usefull with path.
 newtype DomPath = DomPath
   { unDomPath :: [Text]
-  } deriving (Eq, Ord, Show, Monoid)
+  } deriving (Eq, Ord, Show, Semigroup, Monoid)
 
 -- | DOM parser error description.
 data ParserError
@@ -184,7 +185,7 @@
 
 newtype ParserErrors = ParserErrors
   { unParserErrors :: [ParserError]
-  } deriving (Show, Monoid, Generic)
+  } deriving (Show, Semigroup, Monoid, Generic)
 
 makePrisms ''ParserErrors
 
