diff --git a/monoid-transformer.cabal b/monoid-transformer.cabal
--- a/monoid-transformer.cabal
+++ b/monoid-transformer.cabal
@@ -1,5 +1,5 @@
 Name:             monoid-transformer
-Version:          0.0.4
+Version:          0.0.4.1
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -15,7 +15,7 @@
   It's vice versa: The Writer monad transforms a monoid to a monad.
 Tested-With:       GHC==6.8.2
 Tested-With:       GHC==7.8.2
-Cabal-Version:     >=1.6
+Cabal-Version:     >=1.10
 Build-Type:        Simple
 
 Source-Repository head
@@ -25,14 +25,15 @@
 Source-Repository this
   type:     darcs
   location: http://code.haskell.org/~thielema/monoid/
-  tag:      0.0.4
+  tag:      0.0.4.1
 
 
 Library
   Build-Depends:
-    semigroups >=0.1 && <1.0,
-    base >= 1 && <5
+    semigroups >=0.1 && <1,
+    base >=4.11 && <5
 
+  Default-Language: Haskell98
   GHC-Options:      -Wall
   Hs-Source-Dirs:   src
   Exposed-Modules:
diff --git a/src/Data/Monoid/Applicative.hs b/src/Data/Monoid/Applicative.hs
--- a/src/Data/Monoid/Applicative.hs
+++ b/src/Data/Monoid/Applicative.hs
@@ -3,11 +3,11 @@
 import qualified Data.Monoid.Transformer as MonoidTrans
 
 import Control.Applicative (Applicative, pure, liftA2, )
-import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Monoid (Monoid, mempty, )
 import Data.Semigroup (Semigroup, (<>), )
 
 {- |
-Sequence applicative functors and combine their functorial results with 'mappend'.
+Sequence applicative functors and combine their functorial results with '(<>)'.
 -}
 newtype T f a = Cons {run :: f a}
 
@@ -17,8 +17,6 @@
 
 instance (Applicative f, Monoid a) => Monoid (T f a) where
    mempty = Cons $ pure mempty
-   mappend (Cons x) (Cons y) =
-      Cons $ liftA2 mappend x y
 
 instance (Applicative f) => MonoidTrans.C (T f) where
    lift = Cons . pure
diff --git a/src/Data/Monoid/Monad.hs b/src/Data/Monoid/Monad.hs
--- a/src/Data/Monoid/Monad.hs
+++ b/src/Data/Monoid/Monad.hs
@@ -3,11 +3,11 @@
 import qualified Data.Monoid.Transformer as MonoidTrans
 
 import Control.Monad (liftM2, )
-import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Monoid (Monoid, mempty, )
 import Data.Semigroup (Semigroup, (<>), )
 
 {- |
-Sequence actions and combine their monadic results with 'mappend'.
+Sequence actions and combine their monadic results with '(<>)'.
 
 This type could be omitted, if 'Monad' would be a sub-class of 'Applicative'.
 -}
@@ -19,8 +19,6 @@
 
 instance (Monad m, Monoid a) => Monoid (T m a) where
    mempty = Cons $ return mempty
-   mappend (Cons x) (Cons y) =
-      Cons $ liftM2 mappend x y
 
 instance (Monad m) => MonoidTrans.C (T m) where
    lift = Cons . return
diff --git a/src/Data/Monoid/MonadicEndo.hs b/src/Data/Monoid/MonadicEndo.hs
--- a/src/Data/Monoid/MonadicEndo.hs
+++ b/src/Data/Monoid/MonadicEndo.hs
@@ -1,11 +1,11 @@
 module Data.Monoid.MonadicEndo where
 
-import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Monoid (Monoid, mempty, )
 import Data.Semigroup (Semigroup, (<>), )
 
 {- |
 Like Data.Monoid.Endo but with monadic result.
-'mempty' is 'return' and 'mappend' is '<=<'.
+'mempty' is 'return' and '(<>)' is '<=<'.
 
 Useful e.g. for handling options with GetOpt.
 -}
@@ -19,4 +19,3 @@
 
 instance Monad m => Monoid (T m a) where
    mempty = Cons return
-   mappend = (<>)
diff --git a/src/Data/Monoid/Reader.hs b/src/Data/Monoid/Reader.hs
--- a/src/Data/Monoid/Reader.hs
+++ b/src/Data/Monoid/Reader.hs
@@ -1,7 +1,7 @@
 module Data.Monoid.Reader where
 
 import qualified Data.Monoid.Transformer as MonoidTrans
-import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Monoid (Monoid, mempty, )
 import Data.Semigroup (Semigroup, (<>), )
 import Data.Functor (Functor, fmap, )
 import Data.Function (const, ($), (.), )
@@ -22,8 +22,6 @@
 
 instance Monoid a => Monoid (T r a) where
    mempty = MonoidTrans.lift mempty
-   mappend (Cons x) (Cons y) =
-      Cons $ \r -> mappend (x r) (y r)
 
 instance MonoidTrans.C (T r) where
    lift = Cons . const
diff --git a/src/Data/Monoid/State.hs b/src/Data/Monoid/State.hs
--- a/src/Data/Monoid/State.hs
+++ b/src/Data/Monoid/State.hs
@@ -1,7 +1,7 @@
 module Data.Monoid.State where
 
 import qualified Data.Monoid.Transformer as MonoidTrans
-import Data.Monoid (Monoid, mempty, mappend, )
+import Data.Monoid (Monoid, mempty, )
 import Data.Semigroup (Semigroup, (<>), )
 import Data.Functor (Functor, fmap, )
 import Data.Function (const, ($), (.), )
@@ -49,11 +49,6 @@
 
 instance Monoid a => Monoid (T s a) where
    mempty = MonoidTrans.lift mempty
-   mappend (Cons x) (Cons y) =
-      Cons $ \s0 ->
-         let (xr,s1) = x s0
-             (yr,s2) = y s1
-         in  (mappend xr yr, s2)
 
 instance MonoidTrans.C (T s) where
    lift x = Cons $ (,) x
