diff --git a/Numeric/FFTW.hsc b/Numeric/FFTW.hsc
--- a/Numeric/FFTW.hsc
+++ b/Numeric/FFTW.hsc
@@ -63,6 +63,7 @@
 import Control.Monad
 import Data.Bits
 import Data.Monoid
+import Data.Semigroup as Sem
 
 #include <fftw3.h>
 
@@ -110,9 +111,14 @@
 -- | FFTW planner flags. These flags affect the planning process. They can be combined using the 'Monoid' instance. See the FFTW flag documentation: <http://www.fftw.org/doc/Planner-Flags.html>.
 newtype Flag = Flag {unFlag :: CUInt}
 
+instance Sem.Semigroup Flag where
+  (Flag x) <> (Flag y) = Flag (x .|. y)
+
 instance Monoid Flag where
-    mempty                    = Flag 0
-    mappend (Flag x) (Flag y) = Flag (x .|. y)
+    mempty   = Flag 0
+#if !(MIN_VERSION_base(4,11,0))
+    mappend  = (Sem.<>)
+#endif
 
 fftwMeasure, fftwExhaustive, fftwPatient, fftwEstimate, fftwWisdomOnly :: Flag
 fftwEstimate       = Flag #const FFTW_ESTIMATE
diff --git a/fftwRaw.cabal b/fftwRaw.cabal
--- a/fftwRaw.cabal
+++ b/fftwRaw.cabal
@@ -1,5 +1,5 @@
 name:                fftwRaw
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Low level bindings to FFTW.
 description:         
     Yet another set of Haskell bindings to <http://www.fftw.org/ FFTW>, the Fastest Fourier Transform in the West.
