From aad1a078063c755ca5212698f1a96f51bd0cb059 Mon Sep 17 00:00:00 2001
From: Fumiaki Kinoshita <fumiexcel@gmail.com>
Date: Thu, 1 Mar 2018 13:40:34 +0900
Subject: [PATCH] Add Semigroup instances

---
 Data/EnumSet.hs     | 3 ++-
 enummapset-th.cabal | 1 +
 include/map.inc     | 3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/Data/EnumSet.hs b/Data/EnumSet.hs
index 0903ade..201bf3e 100644
--- a/Data/EnumSet.hs
+++ b/Data/EnumSet.hs
@@ -13,6 +13,7 @@ import Control.DeepSeq
 import Data.IntSet
 import Data.Typeable
 import Data.Data
+import Data.Semigroup
 import Data.Monoid
 import Text.ParserCombinators.ReadPrec
 import Text.Read
@@ -21,7 +22,7 @@ import Text.Show
 import Data.EnumMapSetWrapper
 
 newtype EnumSet k = EnumSet { unEnumSet :: IntSet } deriving
-    (Eq, Ord, Monoid, Typeable, Data, NFData)
+    (Eq, Ord, Semigroup, Monoid, Typeable, Data, NFData)
 
 -- * Operators
 w '(\\)
diff --git a/enummapset-th.cabal b/enummapset-th.cabal
index 9bc593e..0e1e89c 100644
--- a/enummapset-th.cabal
+++ b/enummapset-th.cabal
@@ -42,6 +42,7 @@ library
         base >= 4.5 && < 5,
         deepseq >= 1.3,
         containers >= 0.5.3 && < 0.6,
+        semigroups,
         template-haskell >= 2.7
     include-dirs: include
     ghc-options: -Wall
diff --git a/include/map.inc b/include/map.inc
index c1925f9..8b9f118 100644
--- a/include/map.inc
+++ b/include/map.inc
@@ -14,6 +14,7 @@ import Control.DeepSeq
 import Data.Data
 import Data.Foldable (Foldable)
 import Data.IntMap.STRICT
+import Data.Semigroup
 import Data.Monoid
 import Data.Traversable
 import Text.ParserCombinators.ReadPrec
@@ -25,7 +26,7 @@ import Data.EnumSet (EnumSet (..))
 
 infixr 1 `EnumMap`
 newtype EnumMap k v = EnumMap { unEnumMap :: IntMap v } deriving
-    (Eq, Ord, Monoid, Typeable, Data, NFData)
+    (Eq, Ord, Semigroup, Monoid, Typeable, Data, NFData)
 
 ------------------------------------------------------------------------
 
