diff --git a/data-transform.cabal b/data-transform.cabal
--- a/data-transform.cabal
+++ b/data-transform.cabal
@@ -1,5 +1,5 @@
 name:                data-transform
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Functions to transform data structures.
 description:         This library provides a simple way to transform parts of
                      complex data structures. It is based on Data.Data.
@@ -22,7 +22,7 @@
                        MultiParamTypeClasses,
                        FunctionalDependencies,
                        UndecidableInstances
-  build-depends:       base >= 4 && < 5,
+  build-depends:       base >= 4.9 && < 5,
                        mtl,
                        containers
   hs-source-dirs:      src
diff --git a/src/Data/Transform/Internal.hs b/src/Data/Transform/Internal.hs
--- a/src/Data/Transform/Internal.hs
+++ b/src/Data/Transform/Internal.hs
@@ -50,6 +50,8 @@
 import Data.Data
 import Data.Monoid
 
+import qualified Data.Semigroup as S
+
 import Control.Monad
 import Control.Monad.Writer
 import Control.Monad.State
@@ -86,10 +88,13 @@
 mkItemM :: (Monad m, Data a) => (a -> m a) -> EndoMItem m
 mkItemM = EndoMItem
 
+instance S.Semigroup EndoList where
+    Nil        <> b = b
+    (Cons x l) <> b = Cons x (l S.<> b)
+
 instance Monoid EndoList where
-    mempty               = Nil
-    mappend Nil        b = b
-    mappend (Cons x l) b = Cons x (mappend l b)
+    mempty  = Nil
+    mappend = (S.<>)
 
 instance IsList EndoList where
     type Item EndoList = EndoItem
@@ -98,10 +103,13 @@
         Nil      -> Nothing
         Cons f l -> Just (EndoItem f, l)
 
+instance S.Semigroup (EndoListM m) where
+    NilM        <> b = b
+    (ConsM x l) <> b = ConsM x (l S.<> b)
+
 instance Monoid (EndoListM m) where
-    mempty                = NilM
-    mappend NilM        b = b
-    mappend (ConsM x l) b = ConsM x (mappend l b)
+    mempty  = NilM
+    mappend = (S.<>)
 
 instance Monad m => IsList (EndoListM m) where
     type Item (EndoListM m) = EndoMItem m
