diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+0.3.1.0
+
+* Add `Control.Monad.Error.Hoist.hoistError'` and
+  `Control.Monad.Error.Hoist.hoistErrorM'`
+
 0.3.0.0
 
 * Replaced the `HoistError` typeclass, which is about monads, with a
diff --git a/hoist-error.cabal b/hoist-error.cabal
--- a/hoist-error.cabal
+++ b/hoist-error.cabal
@@ -1,5 +1,5 @@
 name:                hoist-error
-version:             0.3.0.0
+version:             0.3.1.0
 synopsis:            Some convenience facilities for hoisting errors into a monad
 description:         Provides a typeclass and useful combinators for hoisting errors into a monad.
 license:             MIT
@@ -20,6 +20,8 @@
                    , GHC == 9.4.5
                    , GHC == 9.6.4
                    , GHC == 9.8.2
+                   , GHC == 9.10.2
+                   , GHC == 9.12.2
 
 source-repository head
     type: git
@@ -29,7 +31,7 @@
   exposed-modules:
     Control.Monad.Error.Hoist
     Control.Monad.Fail.Hoist
-  build-depends:       base   >=4.13 && <4.20
+  build-depends:       base   >=4.13 && <4.22
                      , mtl    >=2.2 && <2.4
 
   hs-source-dirs:      src
diff --git a/src/Control/Monad/Error/Hoist.hs b/src/Control/Monad/Error/Hoist.hs
--- a/src/Control/Monad/Error/Hoist.hs
+++ b/src/Control/Monad/Error/Hoist.hs
@@ -36,7 +36,9 @@
 
 module Control.Monad.Error.Hoist
   ( hoistError
+  , hoistError'
   , hoistErrorM
+  , hoistErrorM'
   -- ** Operators
   -- $mnemonics
   , (<%?>)
@@ -59,9 +61,9 @@
 -- computation into @m@.
 --
 -- @
--- 'hoistError' :: 'MonadError' e m -> (() -> e) -> 'Maybe'       a -> m a
--- 'hoistError' :: 'MonadError' e m -> (a  -> e) -> 'Either'  a   b -> m b
--- 'hoistError' :: 'MonadError' e m -> (a  -> e) -> 'ExceptT' a m b -> m b
+-- 'hoistError' :: 'MonadError' err m -> (() -> err) -> 'Maybe'       a -> m a
+-- 'hoistError' :: 'MonadError' err m -> (e  -> err) -> 'Either'  e   a -> m a
+-- 'hoistError' :: 'MonadError' err m -> (e  -> err) -> 'ExceptT' e m a -> m a
 -- @
 hoistError
   :: (PluckError e t m, MonadError e' m)
@@ -70,12 +72,21 @@
   -> m a
 hoistError f = foldError (throwError . f) pure
 
+-- | @hoistError' = hoistError id@
+--
+-- @since 0.3.1.0
+hoistError'
+  :: (PluckError e t m, MonadError e m)
+  => t a
+  -> m a
+hoistError' = hoistError id
+
 -- | A version of 'hoistError' that operates on values already in the monad.
 --
 -- @
--- 'hoistErrorM' :: 'MonadError' e m => (() -> e) -> m ('Maybe'       a) ->           m a
--- 'hoistErrorM' :: 'MonadError' e m => (a  -> e) -> m ('Either'  a   b) ->           m b
--- 'hoistErrorM' :: 'MonadError' e m => (a  -> e) ->    'ExceptT' a m b  -> 'ExceptT' a m b
+-- 'hoistErrorM' :: 'MonadError' err m => (() -> err) -> m ('Maybe'       a) -> m a
+-- 'hoistErrorM' :: 'MonadError' err m => (e  -> err) -> m ('Either'  e   b) -> m a
+-- 'hoistErrorM' :: 'MonadError' err m => (e  -> err) -> m  'ExceptT' e m b  -> m a
 -- @
 hoistErrorM
   :: (PluckError e t m, MonadError e' m)
@@ -84,6 +95,15 @@
   -> m a
 hoistErrorM e m = m >>= hoistError e
 
+-- | @hoistErrorM' = hoistErrorM id@
+--
+-- @since 0.3.1.0
+hoistErrorM'
+  :: (PluckError e t m, MonadError e m)
+  => m (t a)
+  -> m a
+hoistErrorM' = hoistErrorM id
+
 -- $mnemonics
 --
 -- The operators in this package are named according to a scheme:
@@ -103,9 +123,9 @@
 -- | A flipped synonym for 'hoistError'.
 --
 -- @
--- ('<%?>') :: 'MonadError' e m => 'Maybe'       a -> (() -> e) ->           m a
--- ('<%?>') :: 'MonadError' e m => 'Either'  a   b -> (a  -> e) ->           m b
--- ('<%?>') :: 'MonadError' e m => 'ExceptT' a m b -> (a  -> e) -> 'ExceptT' a m b
+-- ('<%?>') :: 'MonadError' err m => 'Maybe'       a -> (() -> err) -> m a
+-- ('<%?>') :: 'MonadError' err m => 'Either'  e   a -> (e  -> err) -> m a
+-- ('<%?>') :: 'MonadError' err m => 'ExceptT' e m a -> (e  -> err) -> m a
 -- @
 (<%?>)
   :: (PluckError e t m, MonadError e' m)
@@ -120,9 +140,9 @@
 -- | A flipped synonym for 'hoistErrorM'.
 --
 -- @
--- ('<%!?>') :: 'MonadError' e m => m ('Maybe'       a) -> (() -> e) ->           m a
--- ('<%!?>') :: 'MonadError' e m => m ('Either'  a   b) -> (a  -> e) ->           m b
--- ('<%!?>') :: 'MonadError' e m =>    'ExceptT' a m b  -> (a  -> e) -> 'ExceptT' a m b
+-- ('<%!?>') :: 'MonadError' err m => m ('Maybe'       a) -> (() -> err) ->           m a
+-- ('<%!?>') :: 'MonadError' err m => m ('Either'  e   a) -> (e  -> err) ->           m a
+-- ('<%!?>') :: 'MonadError' err m =>    'ExceptT' e m a  -> (e  -> err) -> 'ExceptT' e m a
 -- @
 (<%!?>)
   :: (PluckError e t m, MonadError e' m)
@@ -138,9 +158,9 @@
 -- with a new one.
 --
 -- @
--- ('<?>') :: 'MonadError' e m => 'Maybe'       a -> e ->           m a
--- ('<?>') :: 'MonadError' e m => 'Either'  a   b -> e ->           m b
--- ('<?>') :: 'MonadError' e m => 'ExceptT' a m b -> e -> 'ExceptT' a m b
+-- ('<?>') :: 'MonadError' err m => 'Maybe'       a -> err -> m a
+-- ('<?>') :: 'MonadError' err m => 'Either'  e   a -> err -> m a
+-- ('<?>') :: 'MonadError' err m => 'ExceptT' e m a -> err -> m a
 -- @
 (<?>)
   :: (PluckError e t m, MonadError e' m)
@@ -155,9 +175,9 @@
 -- | A version of '<?>' that operates on values already in the monad.
 --
 -- @
--- ('<!?>') :: 'MonadError' e m => m ('Maybe'       a) -> e ->           m a
--- ('<!?>') :: 'MonadError' e m => m ('Either'  a   b) -> e ->           m b
--- ('<!?>') :: 'MonadError' e m =>    'ExceptT' a m b  -> e -> 'ExceptT' a m b
+-- ('<!?>') :: 'MonadError' err m => m ('Maybe'       a) -> e -> m a
+-- ('<!?>') :: 'MonadError' err m => m ('Either'  e   a) -> e -> m a
+-- ('<!?>') :: 'MonadError' err m => m  'ExceptT' e m a  -> e -> m a
 -- @
 (<!?>)
   :: (PluckError e t m, MonadError e' m)
@@ -172,6 +192,8 @@
 {-# INLINE (<!?>) #-}
 
 -- | A class for plucking an error @e@ out of a partiality type @t@.
+--
+-- @since 0.3.0.0
 class PluckError e t m | t -> e where
   pluckError :: t a -> m (Either e a)
   default pluckError :: Applicative m => t a -> m (Either e a)
diff --git a/src/Control/Monad/Fail/Hoist.hs b/src/Control/Monad/Fail/Hoist.hs
--- a/src/Control/Monad/Fail/Hoist.hs
+++ b/src/Control/Monad/Fail/Hoist.hs
@@ -31,9 +31,12 @@
 -- computation into @m@.
 --
 -- @
--- 'hoistFail' :: 'MonadFail' m => (() -> String) -> 'Maybe'    a -> m a
--- 'hoistFail' :: 'MonadFail' m => (a  -> String) -> 'Either' a b -> m b
+-- 'hoistFail' :: 'MonadFail' m => (() -> String) -> 'Maybe'       a -> m a
+-- 'hoistFail' :: 'MonadFail' m => (e  -> String) -> 'Either'  e   a -> m a
+-- 'hoistFail' :: 'MonadFail' m => (e  -> String) -> 'ExceptT' e m a -> m a
 -- @
+--
+-- @since 0.3.0.0
 hoistFail
   :: (PluckError e t m, MonadFail m)
   => (e -> String)
@@ -41,17 +44,21 @@
   -> m a
 hoistFail f = foldError (fail . f) pure
 
--- | Hoist computations whose error type is already 'String'.
+-- | @hoistFail' = hoistFail id@
+--
+-- @since 0.3.0.0
 hoistFail' :: (PluckError String t m, MonadFail m) => t a -> m a
 hoistFail' = hoistFail id
 
 -- | A version of 'hoistFail' that operates on values already in the monad.
 --
 -- @
--- 'hoistFailM' :: 'MonadFail' m => (() -> String) -> m ('Maybe'       a) ->           m a
--- 'hoistFailM' :: 'MonadFail' m => (a  -> String) -> m ('Either'  a   b) ->           m b
--- 'hoistFailM' :: 'MonadFail' m => (a  -> String) ->    'ExceptT' a m b  -> 'ExceptT' a m b
+-- 'hoistFailM' :: 'MonadFail' m => (() -> String) -> m ('Maybe'       a) -> m a
+-- 'hoistFailM' :: 'MonadFail' m => (e  -> String) -> m ('Either'  e   a) -> m a
+-- 'hoistFailM' :: 'MonadFail' m => (e  -> String) -> m ('ExceptT' e m a) -> m a
 -- @
+--
+-- @since 0.3.0.0
 hoistFailM
   :: (PluckError e t m, MonadFail m)
   => (e -> String)
@@ -59,13 +66,9 @@
   -> m a
 hoistFailM f m = m >>= hoistFail f
 
--- | A version of 'hoistFail'' that operates on values already in the monad.
+-- | @hoistFailM' = hoistFailM id@
 --
--- @
--- 'hoistFailM'' :: 'MonadFail' m => m ('Maybe'       a) ->           m a
--- 'hoistFailM'' :: 'MonadFail' m => m ('Either'  a   b) ->           m b
--- 'hoistFailM'' :: 'MonadFail' m =>    'ExceptT' a m b  -> 'ExceptT' a m b
--- @
+-- @since 0.3.0.0
 hoistFailM'
   :: (PluckError String t m, MonadFail m)
   => m (t a)
@@ -75,9 +78,12 @@
 -- | A flipped synonym for 'hoistFail'. Mnemonic: @#@ looks a bit like @F@.
 --
 -- @
--- ('<%#>') :: 'MonadFail' m => 'Maybe'    a -> (() -> e) -> m a
--- ('<%#>') :: 'MonadFail' m => 'Either' a b -> (a  -> e) -> m b
+-- ('<%#>') :: 'MonadFail' m => 'Maybe'       a -> (() -> String) -> m a
+-- ('<%#>') :: 'MonadFail' m => 'Either'  e m a -> (e  -> String) -> m a
+-- ('<%#>') :: 'MonadFail' m => 'ExceptT' e m a -> (e  -> String) -> m a
 -- @
+--
+-- @since 0.3.0.0
 (<%#>)
   :: (PluckError e t m, MonadFail m)
   => t a
@@ -91,10 +97,12 @@
 -- | A flipped synonym for 'hoistFailM'.
 --
 -- @
--- ('<%!#>') :: 'MonadError' e m => m ('Maybe'       a) -> (() -> e) ->           m a
--- ('<%!#>') :: 'MonadError' e m => m ('Either'  a   b) -> (a  -> e) ->           m b
--- ('<%!#>') :: 'MonadError' e m =>    'ExceptT' a m b  -> (a  -> e) -> 'ExceptT' a m b
+-- ('<%!#>') :: 'MonadFail' m => m ('Maybe'       a) -> (() -> String) -> m a
+-- ('<%!#>') :: 'MonadFail' m => m ('Either'  e   a) -> (e  -> String) -> m a
+-- ('<%!#>') :: 'MonadFail' m => m ('ExceptT' e m a) -> (e  -> String) -> m a
 -- @
+--
+-- @since 0.3.0.0
 (<%!#>)
   :: (PluckError e t m, MonadFail m)
   => m (t a)
@@ -109,9 +117,12 @@
 -- with a new one.
 --
 -- @
--- ('<#>') :: 'MonadFail' m => 'Maybe'    a -> String -> m a
--- ('<#>') :: 'MonadFail' m => 'Either' a b -> String -> m b
+-- ('<#>') :: 'MonadFail' m => 'Maybe'       a -> String -> m a
+-- ('<#>') :: 'MonadFail' m => 'Either'  e   a -> String -> m a
+-- ('<#>') :: 'MonadFail' m => 'ExceptT' e m a -> String -> m a
 -- @
+--
+-- @since 0.3.0.0
 (<#>)
   :: (PluckError e t m, MonadFail m)
   => t a
@@ -125,10 +136,12 @@
 -- | A version of '<#>' that operates on values already in the monad.
 --
 -- @
--- ('<!#>') :: 'MonadFail m => m ('Maybe'       a) -> String ->           m a
--- ('<!#>') :: 'MonadFail m => m ('Either'  a   b) -> String ->           m b
--- ('<!#>') :: 'MonadFail m =>    'ExceptT' a m b  -> String -> 'ExceptT' a m b
+-- ('<!#>') :: 'MonadFail' m => m ('Maybe'       a) -> String -> m a
+-- ('<!#>') :: 'MonadFail' m => m ('Either'  e   a) -> String -> m a
+-- ('<!#>') :: 'MonadFail' m => m ('ExceptT' e m a) -> String -> m a
 -- @
+--
+-- @since 0.3.0.0
 (<!#>)
   :: (PluckError e t m, MonadFail m)
   => m (t a)
