diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,5 @@
 
-Version 0.4.5
+Version 0.4.6
 ---------------
 Added the Semigroup instances to fix the compilation errors with base-4.11
 
diff --git a/Data/Monoid/Instances/ByteString/UTF8.hs b/Data/Monoid/Instances/ByteString/UTF8.hs
--- a/Data/Monoid/Instances/ByteString/UTF8.hs
+++ b/Data/Monoid/Instances/ByteString/UTF8.hs
@@ -54,7 +54,7 @@
 import Data.ByteString.Unsafe (unsafeDrop, unsafeHead, unsafeTail, unsafeTake, unsafeIndex)
 
 import Data.Semigroup -- (Semigroup(..))
-import Data.Monoid -- (Monoid(mempty, mappend))
+import Data.Monoid (Monoid(mempty, mappend))
 import Data.Monoid.Cancellative (LeftReductiveMonoid(..), LeftCancellativeMonoid, LeftGCDMonoid(..))
 import Data.Monoid.Null (MonoidNull(..), PositiveMonoid)
 import Data.Monoid.Factorial (FactorialMonoid(..))
diff --git a/Data/Monoid/Instances/Concat.hs b/Data/Monoid/Instances/Concat.hs
--- a/Data/Monoid/Instances/Concat.hs
+++ b/Data/Monoid/Instances/Concat.hs
@@ -20,7 +20,7 @@
 import qualified Data.List as List
 import Data.String (IsString(..))
 import Data.Semigroup (Semigroup(..))
-import Data.Monoid -- (Monoid(..), First(..), Sum(..))
+import Data.Monoid (Monoid(..), First(..), Sum(..))
 import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..),
                                  LeftGCDMonoid(..), RightGCDMonoid(..))
 import Data.Monoid.Null (MonoidNull(null), PositiveMonoid)
@@ -57,7 +57,7 @@
 
 force :: Monoid a => Concat a -> a
 force (Leaf x) = x
-force (x :<> y) = force x <> force y
+force (x :<> y) = force x `mappend` force y
 
 instance (Eq a, Monoid a) => Eq (Concat a) where
    x == y = force x == force y
@@ -76,9 +76,9 @@
 
 instance Foldable.Foldable Concat where
    fold (Leaf x) = x
-   fold (x :<> y) = Foldable.fold x <> Foldable.fold y
+   fold (x :<> y) = Foldable.fold x `mappend` Foldable.fold y
    foldMap f (Leaf x) = f x
-   foldMap f (x :<> y) = Foldable.foldMap f x <> Foldable.foldMap f y
+   foldMap f (x :<> y) = Foldable.foldMap f x `mappend` Foldable.foldMap f y
    foldl f a (Leaf x) = f a x
    foldl f a (x :<> y) = Foldable.foldl f (Foldable.foldl f a x) y
    foldl' f a (Leaf x) = f a x
diff --git a/Data/Monoid/Instances/Measured.hs b/Data/Monoid/Instances/Measured.hs
--- a/Data/Monoid/Instances/Measured.hs
+++ b/Data/Monoid/Instances/Measured.hs
@@ -18,7 +18,7 @@
 import qualified Data.List as List
 import Data.String (IsString(..))
 import Data.Semigroup -- (Semigroup(..))
-import Data.Monoid -- (Monoid(..))
+import Data.Monoid (Monoid(..))
 import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..),
                                  LeftGCDMonoid(..), RightGCDMonoid(..))
 import Data.Monoid.Null (MonoidNull(null), PositiveMonoid)
diff --git a/Data/Monoid/Instances/Positioned.hs b/Data/Monoid/Instances/Positioned.hs
--- a/Data/Monoid/Instances/Positioned.hs
+++ b/Data/Monoid/Instances/Positioned.hs
@@ -29,8 +29,8 @@
 import qualified Data.List as List
 import Data.String (IsString(..))
 
-import Data.Semigroup -- (Semigroup(..))
-import Data.Monoid -- (Monoid(..), Endo(..))
+import Data.Semigroup (Semigroup(..))
+import Data.Monoid (Monoid(..), Endo(..))
 import Data.Monoid.Cancellative (LeftReductiveMonoid(..), RightReductiveMonoid(..), LeftGCDMonoid(..), RightGCDMonoid(..))
 import Data.Monoid.Null (MonoidNull(null), PositiveMonoid)
 import Data.Monoid.Factorial (FactorialMonoid(..), StableFactorialMonoid)
@@ -236,7 +236,7 @@
    length (OffsetPositioned _ c) = length c
    foldMap f (OffsetPositioned p c) = appEndo (Factorial.foldMap f' c) (const mempty) p
       where -- f' :: m -> Endo (Int -> m)
-            f' prime = Endo (\cont pos-> f (OffsetPositioned pos prime) <> cont (succ pos))
+            f' prime = Endo (\cont pos-> f (OffsetPositioned pos prime) `mappend` cont (succ pos))
 
    spanMaybe s0 f (OffsetPositioned p0 t) = rewrap $ Factorial.spanMaybe (s0, p0) f' t
       where f' (s, p) prime = do s' <- f s (OffsetPositioned p prime)
@@ -305,9 +305,10 @@
    foldMap f (LinePositioned p0 l0 lp0 c) = appEndo (Factorial.foldMap f' c) (const mempty) p0 l0 lp0
       where -- f' :: m -> Endo (Int -> Int -> Int -> m)
             f' prime = Endo (\cont p l lp-> f (LinePositioned p l lp prime)
-                                            <> if characterPrefix prime == Just '\n'
-                                               then cont (succ p) (succ l) p
-                                               else cont (succ p) l lp)
+                                            `mappend`
+                                            if characterPrefix prime == Just '\n'
+                                            then cont (succ p) (succ l) p
+                                            else cont (succ p) l lp)
 
    spanMaybe s0 f (LinePositioned p0 l0 lp0 c) = rewrap $ Factorial.spanMaybe (s0, p0, l0, lp0) f' c
       where f' (s, p, l, lp) prime = do s' <- f s (LinePositioned p l lp prime)
diff --git a/Data/Monoid/Instances/Stateful.hs b/Data/Monoid/Instances/Stateful.hs
--- a/Data/Monoid/Instances/Stateful.hs
+++ b/Data/Monoid/Instances/Stateful.hs
@@ -24,7 +24,7 @@
 import qualified Data.List as List
 import Data.String (IsString(..))
 import Data.Semigroup -- (Semigroup(..))
-import Data.Monoid -- (Monoid(..))
+import Data.Monoid (Monoid(..))
 import Data.Monoid.Cancellative (LeftReductiveMonoid(..), LeftGCDMonoid(..), RightReductiveMonoid(..), RightGCDMonoid(..))
 import Data.Monoid.Null (MonoidNull(null), PositiveMonoid)
 import Data.Monoid.Factorial (FactorialMonoid(..), StableFactorialMonoid)
@@ -54,7 +54,7 @@
 
 instance Monoid a => Applicative (Stateful a) where
    pure m = Stateful (m, mempty)
-   Stateful (f, s1) <*> Stateful (x, s2) = Stateful (f x, s1 <> s2)
+   Stateful (f, s1) <*> Stateful (x, s2) = Stateful (f x, mappend s1 s2)
 
 instance (Semigroup a, Semigroup b) => Semigroup (Stateful a b) where
    Stateful x <> Stateful y = Stateful (x <> y)
@@ -62,7 +62,7 @@
 
 instance (Monoid a, Monoid b) => Monoid (Stateful a b) where
    mempty = Stateful mempty
-   mappend = (<>)
+   Stateful x `mappend` Stateful y = Stateful (mappend x y)
    {-# INLINE mempty #-}
    {-# INLINE mappend #-}
 
diff --git a/Test/TestMonoidSubclasses.hs b/Test/TestMonoidSubclasses.hs
--- a/Test/TestMonoidSubclasses.hs
+++ b/Test/TestMonoidSubclasses.hs
@@ -56,6 +56,7 @@
 import Data.Monoid.Instances.Positioned (OffsetPositioned, LinePositioned)
 import qualified Data.Monoid.Instances.Positioned as Positioned
 
+import Data.Semigroup (Semigroup)
 import Data.Monoid (Monoid, mempty, (<>), mconcat, All(All), Any(Any), Dual(Dual),
                     First(First), Last(Last), Sum(Sum), Product(Product))
 import Data.Monoid.Null (MonoidNull, PositiveMonoid, null)
diff --git a/monoid-subclasses.cabal b/monoid-subclasses.cabal
--- a/monoid-subclasses.cabal
+++ b/monoid-subclasses.cabal
@@ -1,5 +1,5 @@
 Name:                monoid-subclasses
-Version:             0.4.5
+Version:             0.4.6
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Synopsis:            Subclasses of Monoid
