diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+2024-12-21 Ivan Perez <ivan.perez@keera.co.uk>
+        * Version bump (0.14.0) (#460).
+        * Remove deprecated definitions from FRP.Dunai.LTLPast (#444).
+        * Thanks to @solomon-b.
+
 2024-10-21 Ivan Perez <ivan.perez@keera.co.uk>
         * Version bump (0.13.2) (#442).
         * Increase upper bounds on QuickCheck (#436).
diff --git a/dunai-test.cabal b/dunai-test.cabal
--- a/dunai-test.cabal
+++ b/dunai-test.cabal
@@ -30,7 +30,7 @@
 build-type:    Simple
 
 name:          dunai-test
-version:       0.13.2
+version:       0.14.0
 author:        Ivan Perez
 maintainer:    ivan.perez@keera.co.uk
 homepage:      https://github.com/ivanperez-keera/dunai
@@ -77,7 +77,7 @@
 
   build-depends:
       base >= 4 && < 5
-    , dunai >= 0.5 && < 0.14
+    , dunai >= 0.5 && < 0.15
     , normaldistribution >= 1.0  && < 1.2
     , QuickCheck         >= 2.12 && < 2.16
 
diff --git a/src/FRP/Dunai/LTLPast.hs b/src/FRP/Dunai/LTLPast.hs
--- a/src/FRP/Dunai/LTLPast.hs
+++ b/src/FRP/Dunai/LTLPast.hs
@@ -83,57 +83,3 @@
 
 -- | A signal predicate is an MSF whose output is a Boolean value.
 type SPred m a = MSF m a Bool
-
--- ** Propositional MSFs
-
--- | Output True at times when the input is False.
-{-# DEPRECATED notSF' "Use notSF instead" #-}
-notSF' :: Monad m => SPred m a -> SPred m a
-notSF' sf = sf >>> arr not
-
--- | Output True at times when both inputs are True.
-{-# DEPRECATED andSF' "Use andSF instead" #-}
-andSF' :: Monad m => SPred m a -> SPred m a -> SPred m a
-andSF' sf1 sf2 = (sf1 &&& sf2) >>> arr (uncurry (&&))
-
--- | Output True at times when at least one of the inputs is True.
-{-# DEPRECATED orSF' "Use orSF instead" #-}
-orSF' :: Monad m => SPred m a -> SPred m a -> SPred m a
-orSF' sf1 sf2 = (sf1 &&& sf2) >>> arr (uncurry (||))
-
--- | Output True at times when the first input stream is False or the second
--- one is True.
-{-# DEPRECATED implySF' "Use impliesSF instead" #-}
-implySF' :: Monad m => SPred m a -> SPred m a -> SPred m a
-implySF' sf1 sf2 = orSF' sf2 (notSF' sf1)
-
--- ** Temporal MSFs
-
--- | Output True at a time if the input has always been True up until that
--- time.
---
--- This corresponds to Historically, or the past-time version of Globally or
--- Always.
-{-# DEPRECATED history' "Use sofarSF instead" #-}
-history' :: Monad m => SPred m a -> SPred m a
-history' sf = feedback True $ proc (a, last) -> do
-  b <- sf -< a
-  let cur = last && b
-  returnA -< (cur, cur)
-
--- | Output True at a time if the input has ever been True up until that time.
---
--- This corresponds to Ever, or the past-time version of Eventually.
-{-# DEPRECATED ever' "Use everSF instead" #-}
-ever' :: Monad m => SPred m a -> SPred m a
-ever' sf = feedback False $ proc (a, last) -> do
-  b <- sf -< a
-  let cur = last || b
-  returnA -< (cur, cur)
-
--- | Output True at a time if the input at the last time was True.
-{-# DEPRECATED prev' "Use lastSF instead" #-}
-prev' :: Monad m => SPred m a -> SPred m a
-prev' sf = feedback True $ proc (a, last) -> do
-  b <- sf -< a
-  returnA -< (last, b)
