diff --git a/src/Typed/Spreadsheet.hs b/src/Typed/Spreadsheet.hs
--- a/src/Typed/Spreadsheet.hs
+++ b/src/Typed/Spreadsheet.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE ExistentialQuantification  #-}
 {-# LANGUAGE RankNTypes                 #-}
 {-# LANGUAGE ApplicativeDo              #-}
+{-# LANGUAGE CPP              #-}
 
 -- | The following program:
 --
@@ -167,10 +168,20 @@
 
     Updatable mf <*> Updatable mx = Updatable (liftA2 (<*>) mf mx)
 
+#if MIN_VERSION_base(4,11,0)
+instance Semigroup a => Semigroup (Updatable a) where
+    (<>) = liftA2 (<>)
+
 instance Monoid a => Monoid (Updatable a) where
     mempty = pure mempty
 
+#else
+instance Monoid a => Monoid (Updatable a) where
+    mempty = pure mempty
+
     mappend = liftA2 mappend
+#endif
+
 
 instance IsString a => IsString (Updatable a) where
     fromString str = pure (fromString str)
diff --git a/typed-spreadsheet.cabal b/typed-spreadsheet.cabal
--- a/typed-spreadsheet.cabal
+++ b/typed-spreadsheet.cabal
@@ -1,5 +1,5 @@
 Name: typed-spreadsheet
-Version: 1.1.2
+Version: 1.1.3
 Cabal-Version: >=1.8.0.2
 Build-Type: Simple
 License: BSD3
@@ -37,7 +37,7 @@
         diagrams-cairo >= 1.3    && < 1.5 ,
         diagrams-gtk   >= 1.3    && < 1.5 ,
         diagrams-lib   >= 1.3    && < 1.5 ,
-        foldl          >= 1.1    && < 1.3 ,
+        foldl          >= 1.1    && < 1.4 ,
         gtk            >= 0.13   && < 0.15,
         microlens                   < 0.5 ,
         stm                         < 2.5 ,
