diff --git a/disjoint-containers.cabal b/disjoint-containers.cabal
--- a/disjoint-containers.cabal
+++ b/disjoint-containers.cabal
@@ -1,5 +1,5 @@
 name: disjoint-containers
-version: 0.2.2
+version: 0.2.3
 synopsis: Disjoint containers
 description: Disjoint containers
 homepage: https://github.com/andrewthad/disjoint-containers#readme
@@ -34,8 +34,9 @@
     , disjoint-containers
     , containers
     , QuickCheck
-    , quickcheck-classes
+    , quickcheck-classes >= 0.1 && < 0.3
     , aeson
+    , semigroups
   default-language: Haskell2010
 
 test-suite doctest
diff --git a/src/Data/DisjointMap.hs b/src/Data/DisjointMap.hs
--- a/src/Data/DisjointMap.hs
+++ b/src/Data/DisjointMap.hs
@@ -56,6 +56,7 @@
 import Data.Maybe (fromMaybe)
 import Data.Aeson (ToJSON(..),FromJSON(..))
 import Data.Foldable (foldlM)
+import qualified Data.Semigroup as SG
 import qualified Data.Map.Strict as M
 import qualified Data.Set as S
 import qualified GHC.OldList as L
@@ -75,6 +76,9 @@
 instance (Ord k, Monoid v) => Monoid (DisjointMap k v) where
   mappend = append
   mempty = empty
+
+instance (Ord k, Monoid v) => SG.Semigroup (DisjointMap k v) where
+  (<>) = append
 
 -- technically, it should be possible to weaken the Ord constraint on v to
 -- an Eq constraint
