diff --git a/Data/GroupedList.hs b/Data/GroupedList.hs
--- a/Data/GroupedList.hs
+++ b/Data/GroupedList.hs
@@ -228,9 +228,17 @@
 instance Pointed Grouped where
   point = fromGroup . point
 
+#if MIN_VERSION_base(4,11,0)
 instance Eq a => Monoid (Grouped a) where
   mempty = Grouped S.empty
+
+instance Eq a => Semigroup (Grouped a) where
+  Grouped gs <> Grouped gs' = Grouped $
+#else
+instance Eq a => Monoid (Grouped a) where
+  mempty = Grouped S.empty
   mappend (Grouped gs) (Grouped gs') = Grouped $
+#endif
     case S.viewr gs of
       gsl S.:> Group n l ->
         case S.viewl gs' of
diff --git a/grouped-list.cabal b/grouped-list.cabal
--- a/grouped-list.cabal
+++ b/grouped-list.cabal
@@ -1,5 +1,5 @@
 name:                grouped-list
-version:             0.2.2.0
+version:             0.2.2.1
 synopsis:            Grouped lists. Equal consecutive elements are grouped.
 description:
   Grouped lists work like regular lists, except for two conditions:
@@ -28,7 +28,7 @@
   default-language: Haskell2010
   exposed-modules: Data.GroupedList
   build-depends:
-      base >= 4.8 && < 4.11
+      base >= 4.8 && < 4.13
     , containers
     , pointed
     , deepseq
