diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
 aeson-diff 1.1.0.4
+    * Support GHC-8.4.x in recent Stackage releases.
+
+aeson-diff 1.1.0.4
 
     * Resolve name clash that prevents building against aeson>=1.2 in
       Stackage Nightly.
diff --git a/aeson-diff.cabal b/aeson-diff.cabal
--- a/aeson-diff.cabal
+++ b/aeson-diff.cabal
@@ -1,5 +1,5 @@
 name:                aeson-diff
-version:             1.1.0.4
+version:             1.1.0.5
 synopsis:            Extract and apply patches to JSON documents.
 description:
   .
@@ -34,7 +34,7 @@
   exposed-modules:     Data.Aeson.Diff
                      , Data.Aeson.Patch
                      , Data.Aeson.Pointer
-  build-depends:       base >=4.5 && <4.11
+  build-depends:       base >=4.5 && <4.12
                      , aeson
                      , bytestring >= 0.10
                      , edit-distance-vector
@@ -110,6 +110,7 @@
                      , doctest >= 0.9
 
 test-suite             hlint-check
+  buildable:           False
   default-language:    Haskell2010
   type:                exitcode-stdio-1.0
   hs-source-dirs:      test
diff --git a/lib/Data/Aeson/Patch.hs b/lib/Data/Aeson/Patch.hs
--- a/lib/Data/Aeson/Patch.hs
+++ b/lib/Data/Aeson/Patch.hs
@@ -23,6 +23,7 @@
 import           Data.Aeson.Types
 import qualified Data.ByteString.Lazy.Char8 as BS
 import           Data.Monoid
+import           Data.Semigroup             (Semigroup)
 import           Data.Vector                (Vector)
 import qualified Data.Vector                as V
 
@@ -33,7 +34,7 @@
 -- | Describes the changes between two JSON documents.
 newtype Patch = Patch
     { patchOperations :: [Operation] }
-  deriving (Eq, Show, Monoid)
+  deriving (Eq, Show, Semigroup, Monoid)
 
 instance ToJSON Patch where
     toJSON (Patch ops) = toJSON ops
diff --git a/lib/Data/Aeson/Pointer.hs b/lib/Data/Aeson/Pointer.hs
--- a/lib/Data/Aeson/Pointer.hs
+++ b/lib/Data/Aeson/Pointer.hs
@@ -21,6 +21,7 @@
 import qualified Data.HashMap.Strict        as HM
 import           Data.Monoid
 import           Data.Scientific
+import           Data.Semigroup             (Semigroup)
 import           Data.Text                  (Text)
 import qualified Data.Text                  as T
 import qualified Data.Vector                as V
@@ -63,7 +64,7 @@
 --
 -- Defined in RFC 6901 <http://tools.ietf.org/html/rfc6901>
 newtype Pointer = Pointer { pointerPath :: Path }
-  deriving (Eq, Ord, Show, Monoid)
+  deriving (Eq, Ord, Show, Semigroup, Monoid)
 
 -- | Format a 'Pointer' as described in RFC 6901.
 --
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,4 +1,4 @@
-resolver: lts-9.5
+resolver: lts-9.9
 extra-deps:
 - edit-distance-vector-1.0.0.4
 flags: {}
