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.3.0.0
+version:             0.4.0.0
 synopsis:            Better error messages when decoding JSON values.
 license:             MIT
 license-file:        LICENSE
@@ -35,6 +35,7 @@
                    , vector
                    , transformers
                    , mtl
+                   , void
 
   ghc-options:       -Wall
   hs-source-dirs:    src
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
@@ -14,6 +14,7 @@
 module Data.Aeson.BetterErrors
   ( -- * The Parser type
     Parse
+  , Parse'
 
   -- * Basic parsers
   , asText
@@ -64,6 +65,7 @@
 
   -- * Miscellaneous
   , toAesonParser
+  , toAesonParser'
   , JSONType(..)
   , jsonTypeOf
   ) where
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
@@ -9,6 +9,7 @@
 import Control.Monad.Trans.Except
 import Control.Monad.Error.Class (MonadError(..))
 
+import Data.Void
 import Data.Foldable (foldMap)
 import Data.Monoid
 import Data.DList (DList)
@@ -32,13 +33,22 @@
 -- | The type of parsers: things which consume JSON values and produce either
 -- detailed errors or successfully parsed values (of other types).
 --
--- The @err@ type parameter is for your own errors; if you don't need to use
--- any errors of your own, simply set it to @()@.
+-- The @err@ type parameter is for custom validation errors; for parsers that
+-- don't produce any custom validation errors, I recommend you just stick a
+-- type variable in for full generality:
+--
+-- @
+--     asTuple :: Parse e (Int, Int)
+--     asTuple = (,) \<$\> nth 0 asIntegral \<*\> nth 1 asIntegral
+-- @
 newtype Parse err a
   = Parse (ReaderT ParseReader (Except (ParseError err)) a)
   deriving (Functor, Applicative, Monad,
             MonadReader ParseReader, MonadError (ParseError err))
 
+-- | The type of parsers which never produce custom validation errors.
+type Parse' = Parse Void
+
 runParser ::
   (s -> Either String A.Value) ->
   Parse err a ->
@@ -78,6 +88,12 @@
   case parseValue p val of
     Right x -> return x
     Left err -> fail (unlines (map T.unpack (displayError showCustom err)))
+
+-- | Take a parser which never produces custom validation errors and turn
+-- it into an Aeson parser. Note that in this case, there is no need to provide
+-- a display function.
+toAesonParser' :: Parse' a -> A.Value -> A.Parser a
+toAesonParser' = toAesonParser absurd
 
 -- | Data used internally by the 'Parse' type.
 data ParseReader = ParseReader
