diff --git a/CHANGELOG.rst b/CHANGELOG.rst
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -7,6 +7,19 @@
 .. _PVP: https://pvp.haskell.org/
 
 
+1.9.1.0 (2018-06-10)
+--------------------
+
+* Git: :tag:`dejafu-1.9.1.0`
+* Hackage: :hackage:`dejafu-1.9.1.0`
+
+Added
+~~~~~
+
+* A ``Test.DejaFu.successful`` predicate, to check that a computation
+  never fails.
+
+
 1.9.0.0 (2018-06-10)
 --------------------
 
diff --git a/Test/DejaFu.hs b/Test/DejaFu.hs
--- a/Test/DejaFu.hs
+++ b/Test/DejaFu.hs
@@ -151,6 +151,9 @@
 
   , Predicate
   , ProPredicate(..)
+  , successful
+  , alwaysSame
+  , notAlwaysSame
   , abortsNever
   , abortsAlways
   , abortsSometimes
@@ -172,10 +175,8 @@
 -}
 
   , representative
-  , alwaysSame
   , alwaysSameOn
   , alwaysSameBy
-  , notAlwaysSame
   , alwaysTrue
   , somewhereTrue
   , alwaysNothing
@@ -751,8 +752,17 @@
       in result { _failures = simplestsBy (==) (_failures result) }
   }
 
+-- | Check that a computation never fails.
+--
+-- @since 1.9.1.0
+successful :: Predicate a
+successful = alwaysTrue (either (const False) (const True))
+
 -- | Check that a computation never aborts.
 --
+-- Any result other than an abort, including other 'Failure's, is
+-- allowed.
+--
 -- @since 1.0.0.0
 abortsNever :: Predicate a
 abortsNever = alwaysTrue (not . either (==Abort) (const False))
@@ -765,12 +775,18 @@
 
 -- | Check that a computation aborts at least once.
 --
+-- Any result other than an abort, including other 'Failure's, is
+-- allowed.
+--
 -- @since 1.0.0.0
 abortsSometimes :: Predicate a
 abortsSometimes = somewhereTrue $ either (==Abort) (const False)
 
 -- | Check that a computation never deadlocks.
 --
+-- Any result other than a deadlock, including other 'Failure's, is
+-- allowed.
+--
 -- @since 1.0.0.0
 deadlocksNever :: Predicate a
 deadlocksNever = alwaysTrue (not . either isDeadlock (const False))
@@ -783,12 +799,18 @@
 
 -- | Check that a computation deadlocks at least once.
 --
+-- Any result other than a deadlock, including other 'Failure's, is
+-- allowed.
+--
 -- @since 1.0.0.0
 deadlocksSometimes :: Predicate a
 deadlocksSometimes = somewhereTrue $ either isDeadlock (const False)
 
 -- | Check that a computation never fails with an uncaught exception.
 --
+-- Any result other than an uncaught exception, including other
+-- 'Failure's, is allowed.
+--
 -- @since 1.0.0.0
 exceptionsNever :: Predicate a
 exceptionsNever = alwaysTrue (not . either isUncaughtException (const False))
@@ -800,6 +822,9 @@
 exceptionsAlways = alwaysTrue $ either isUncaughtException (const False)
 
 -- | Check that a computation fails with an uncaught exception at least once.
+--
+-- Any result other than an uncaught exception, including other
+-- 'Failure's, is allowed.
 --
 -- @since 1.0.0.0
 exceptionsSometimes :: Predicate a
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:             1.9.0.0
+version:             1.9.1.0
 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-1.9.0.0
+  tag:      dejafu-1.9.1.0
 
 library
   exposed-modules:     Test.DejaFu
