diff --git a/decimal-arithmetic.cabal b/decimal-arithmetic.cabal
--- a/decimal-arithmetic.cabal
+++ b/decimal-arithmetic.cabal
@@ -1,6 +1,6 @@
 
 name:                decimal-arithmetic
-version:             0.5.0.0
+version:             0.5.1.0
 
 synopsis:            An implementation of the General Decimal Arithmetic
                      Specification
@@ -47,7 +47,7 @@
                        Numeric.Decimal.Precision
                        Numeric.Decimal.Rounding
 
-  build-depends:       base >= 4.8 && < 5
+  build-depends:       base >= 4.11 && < 5
                      , binary >= 0.8 && < 0.9
                      , binary-bits >= 0.5 && < 0.6
                      , deepseq >= 1.4 && < 1.5
diff --git a/src/Numeric/Decimal/Arithmetic.hs b/src/Numeric/Decimal/Arithmetic.hs
--- a/src/Numeric/Decimal/Arithmetic.hs
+++ b/src/Numeric/Decimal/Arithmetic.hs
@@ -223,9 +223,11 @@
   showsPrec d sigs = showParen (d > 10) $
     showString "signals " . showsPrec 11 (signalList sigs)
 
+instance Semigroup Signals where
+  Signals x <> Signals y = Signals (x .|. y)
+
 instance Monoid Signals where
   mempty = Signals zeroBits
-  Signals x `mappend` Signals y = Signals (x .|. y)
 
 -- | Create a set of signals from a singleton.
 signal :: Signal -> Signals
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -15,7 +15,7 @@
 # resolver:
 #  name: custom-snapshot
 #  location: "./custom-snapshot.yaml"
-resolver: lts-9.1
+resolver: lts-12.0
 
 # User packages to be built.
 # Various formats can be used as shown in the example below.
