diff --git a/CHANGELOG.rst b/CHANGELOG.rst
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,18 @@
 
 .. _PVP: https://pvp.haskell.org/
 
+2.4.0.4 (2022-08-22)
+--------------------
+
+* Git: :tag:`dejafu-2.4.0.4`
+* Hackage: :hackage:`dejafu-2.4.0.4`
+
+Miscellaneous
+~~~~~~~~~~~~~
+
+* Update doctest examples in `Test.DejaFu`.
+* The upper bound on :hackage:`leancheck` is <2.
+
 
 2.4.0.3 (2021-08-15)
 --------------------
diff --git a/Test/DejaFu.hs b/Test/DejaFu.hs
--- a/Test/DejaFu.hs
+++ b/Test/DejaFu.hs
@@ -491,7 +491,7 @@
 -- [fail] Randomly!
 --     "hello" S0----S1--S0--
 -- <BLANKLINE>
---     "world" S0----S2--S1-S0--
+--     "world" S0---P2--S0--
 -- False
 --
 -- @since 2.1.0.0
@@ -517,7 +517,7 @@
 -- [fail] Randomly!
 --     "hello" S0----S1--S0--
 -- <BLANKLINE>
---     "world" S0----S2--S1-S0--
+--     "world" S0---P2--S0--
 -- False
 --
 -- @since 2.1.0.0
diff --git a/Test/DejaFu/Conc.hs b/Test/DejaFu/Conc.hs
--- a/Test/DejaFu/Conc.hs
+++ b/Test/DejaFu/Conc.hs
@@ -57,6 +57,7 @@
   ) where
 
 import           Control.Exception                 (MaskingState(..))
+import           Control.Monad                     (void)
 
 import           Test.DejaFu.Conc.Internal.Common
 import           Test.DejaFu.Conc.Internal.Program
@@ -164,7 +165,7 @@
 --
 -- @since 2.0.0.0
 registerInvariant :: Invariant n a -> Program Basic n ()
-registerInvariant inv = ModelConc (\c -> ANewInvariant (() <$ inv) (c ()))
+registerInvariant inv = ModelConc (\c -> ANewInvariant (void inv) (c ()))
 
 -- | Read the content of an @IORef@.
 --
diff --git a/Test/DejaFu/Conc/Internal/Threading.hs b/Test/DejaFu/Conc/Internal/Threading.hs
--- a/Test/DejaFu/Conc/Internal/Threading.hs
+++ b/Test/DejaFu/Conc/Internal/Threading.hs
@@ -81,7 +81,7 @@
   raise (ms, act, hs) = except ms act hs tid threads
 
   propagate' [] = Nothing
-  propagate' (Handler ms h:hs) = maybe (propagate' hs) (\act -> Just (ms, act, hs)) $ h <$> fromException e
+  propagate' (Handler ms h:hs) = maybe (propagate' hs) ((\act -> Just (ms, act, hs)) . h) (fromException e)
 
 -- | Check if a thread can be interrupted by an exception.
 interruptible :: Thread n -> Bool
diff --git a/dejafu.cabal b/dejafu.cabal
--- a/dejafu.cabal
+++ b/dejafu.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                dejafu
-version:             2.4.0.3
+version:             2.4.0.4
 synopsis:            A library for unit-testing concurrent programs.
 
 description:
@@ -33,7 +33,7 @@
 source-repository this
   type:     git
   location: https://github.com/barrucadu/dejafu.git
-  tag:      dejafu-2.4.0.3
+  tag:      dejafu-2.4.0.4
 
 library
   exposed-modules:     Test.DejaFu
@@ -64,7 +64,7 @@
                      , contravariant     >=1.2 && <1.6
                      , deepseq           >=1.1 && <2
                      , exceptions        >=0.7 && <0.11
-                     , leancheck         >=0.6 && <0.10
+                     , leancheck         >=0.6 && <2
                      , profunctors       >=4.0 && <6
                      , random            >=1.0 && <1.3
                      , transformers      >=0.5 && <0.6
