diff --git a/aeson-better-errors.cabal b/aeson-better-errors.cabal
--- a/aeson-better-errors.cabal
+++ b/aeson-better-errors.cabal
@@ -1,5 +1,5 @@
 name:                aeson-better-errors
-version:             0.7.0.0
+version:             0.8.0
 synopsis:            Better error messages when decoding JSON values.
 license:             MIT
 license-file:        LICENSE
diff --git a/src/Data/Aeson/BetterErrors.hs b/src/Data/Aeson/BetterErrors.hs
--- a/src/Data/Aeson/BetterErrors.hs
+++ b/src/Data/Aeson/BetterErrors.hs
@@ -53,6 +53,7 @@
   , withBool
   , withObject
   , withArray
+  , throwCustomError
 
   -- * Running parsers
   , parse
diff --git a/src/Data/Aeson/BetterErrors/Internal.hs b/src/Data/Aeson/BetterErrors/Internal.hs
--- a/src/Data/Aeson/BetterErrors/Internal.hs
+++ b/src/Data/Aeson/BetterErrors/Internal.hs
@@ -440,3 +440,7 @@
 -- possible, as they will generate better error messages.
 withArray :: (A.Array -> Either err a) -> Parse err a
 withArray = with asArray
+
+-- | Throw a custom validation error.
+throwCustomError :: err -> Parse err a
+throwCustomError = liftEither . Left
