diff --git a/src/UniqueLogic/ST/TF/Example/Verify.hs b/src/UniqueLogic/ST/TF/Example/Verify.hs
--- a/src/UniqueLogic/ST/TF/Example/Verify.hs
+++ b/src/UniqueLogic/ST/TF/Example/Verify.hs
@@ -74,11 +74,10 @@
    fmap = liftM
 
 instance (Monad m) => Applicative (Track m) where
-   pure = return
+   pure = Track . UMT.point
    (<*>) = ap
 
 instance (Monad m) => Monad (Track m) where
-   return = Track . UMT.point
    x >>= k  =  Track $ UMT.bind (runTrack x) (runTrack . k)
 
 
diff --git a/src/UniqueLogic/ST/TF/MonadTrans.hs b/src/UniqueLogic/ST/TF/MonadTrans.hs
--- a/src/UniqueLogic/ST/TF/MonadTrans.hs
+++ b/src/UniqueLogic/ST/TF/MonadTrans.hs
@@ -59,9 +59,8 @@
    fmap = liftM
 
 instance (C t, Monad m) => Applicative (Wrap t m) where
-   pure = return
+   pure = wrap . point
    (<*>) = ap
 
 instance (C t, Monad m) => Monad (Wrap t m) where
-   return = wrap . point
    x >>= k  =  wrap $ bind (unwrap x) (unwrap . k)
diff --git a/src/UniqueLogic/ST/TF/System.hs b/src/UniqueLogic/ST/TF/System.hs
--- a/src/UniqueLogic/ST/TF/System.hs
+++ b/src/UniqueLogic/ST/TF/System.hs
@@ -42,7 +42,7 @@
 import Data.Functor.Compose (Compose(Compose))
 
 import Data.Maybe (isNothing, )
-import Data.Monoid (Monoid, mempty, mappend, mconcat, )
+import Data.Monoid (Monoid, mempty, mconcat, )
 import Data.Semigroup (Semigroup, (<>), )
 
 import Prelude hiding (break)
@@ -63,7 +63,6 @@
 
 instance Monoid (Updates w s) where
    mempty = Updates Seq.empty
-   mappend (Updates x) (Updates y) = Updates $ mappend x y
 
 addUpdate :: Update w s -> Updates w s -> Updates w s
 addUpdate x (Updates xs) = Updates $ xs |> x
@@ -88,7 +87,6 @@
    (<*>) = ap
 
 instance (Ref.C s) => Monad (T w s) where
-   return = Cons . return
    Cons x >>= k  = Cons $ run . k =<< x
 
 
diff --git a/src/UniqueLogic/ST/TF/Test.hs b/src/UniqueLogic/ST/TF/Test.hs
--- a/src/UniqueLogic/ST/TF/Test.hs
+++ b/src/UniqueLogic/ST/TF/Test.hs
@@ -9,7 +9,7 @@
 import Control.Monad.Trans.Identity (IdentityT, )
 import Control.Monad.ST (ST, runST, )
 import Control.Monad (join, liftM2, )
-import Data.Monoid (Monoid(mempty, mappend))
+import Data.Monoid (Monoid(mempty))
 import Data.Semigroup (Semigroup, (<>), )
 
 import Data.List (sortBy, )
@@ -31,7 +31,6 @@
 
 instance (Monad s) => Monoid (Check s) where
    mempty = Check $ return True
-   mappend = (<>)
 
 {-
 Take a system of six equations and seven variables
diff --git a/unique-logic-tf.cabal b/unique-logic-tf.cabal
--- a/unique-logic-tf.cabal
+++ b/unique-logic-tf.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:    2.2
 Name:             unique-logic-tf
-Version:          0.5.1.2
+Version:          0.5.1.3
 License:          BSD-3-Clause
 License-File:     LICENSE
 Author:           Henning Thielemann
@@ -71,7 +71,7 @@
   Changes.md
 
 Source-Repository this
-  Tag:         0.5.1.2
+  Tag:         0.5.1.3
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/unique-logic-tf/
 
@@ -86,7 +86,7 @@
     semigroups >=0.1 && <1,
     containers >=0.4 && <0.9,
     utility-ht >=0.0.9 && <0.1,
-    base >= 4 && <5
+    base >=4.11 && <5
   Default-Language: Haskell98
   GHC-Options:      -Wall
   Hs-Source-Dirs:   src
