diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+= Version 1.3.3, 2018-01-02 =
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+* Add Semigroup instances for Map and Set
+
 = Version 1.3.2, 2016-11-30 =
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 * Replace internal use of deprecated containers functions
diff --git a/Data/HashMap.hs b/Data/HashMap.hs
--- a/Data/HashMap.hs
+++ b/Data/HashMap.hs
@@ -122,6 +122,9 @@
 import Data.Foldable (Foldable(foldMap))
 import Data.List (foldl')
 import Data.Monoid (Monoid(..))
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup (Semigroup((<>), stimes), stimesIdempotentMonoid)
+#endif
 import Data.Traversable (Traversable(traverse))
 import Data.Typeable
 
@@ -178,8 +181,16 @@
 
 instance Ord k => Monoid (Map k a) where
   mempty  = empty
-  mappend = union
   mconcat = unions
+#if !(MIN_VERSION_base(4,9,0))
+  mappend = union
+#else
+  mappend = (<>)
+
+instance Ord k => Semigroup (Map k a) where
+  (<>)   = union
+  stimes = stimesIdempotentMonoid
+#endif
 
 instance Foldable (Map k) where
   foldMap f (Map m) = foldMap some_fold m
diff --git a/Data/HashSet.hs b/Data/HashSet.hs
--- a/Data/HashSet.hs
+++ b/Data/HashSet.hs
@@ -73,6 +73,9 @@
 import Data.Hashable
 import Data.List (foldl')
 import Data.Monoid (Monoid(..))
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup (Semigroup((<>), stimes), stimesIdempotentMonoid)
+#endif
 import Data.Typeable
 
 #if __GLASGOW_HASKELL__
@@ -117,8 +120,16 @@
 
 instance Ord a => Monoid (Set a) where
   mempty  = empty
-  mappend = union
   mconcat = unions
+#if !(MIN_VERSION_base(4,9,0))
+  mappend = union
+#else
+  mappend = (<>)
+
+instance Ord a => Semigroup (Set a) where
+  (<>)   = union
+  stimes = stimesIdempotentMonoid
+#endif
 
 instance Show a => Show (Set a) where
   showsPrec d m   = showParen (d > 10) $
diff --git a/hashmap.cabal b/hashmap.cabal
--- a/hashmap.cabal
+++ b/hashmap.cabal
@@ -1,5 +1,5 @@
 Name:                hashmap
-Version:             1.3.2
+Version:             1.3.3
 Synopsis:            Persistent containers Map and Set based on hashing.
 Description:         An implementation of persistent 'Map' and 'Set' containers
                      based on hashing. The implementation is build on
@@ -36,6 +36,8 @@
                    , GHC == 7.8.4
                    , GHC == 7.10.3
                    , GHC == 8.0.2
+                   , GHC == 8.2.2
+                   , GHC == 8.4.1
 
 source-repository head
   type: git
