diff --git a/cps-except.cabal b/cps-except.cabal
--- a/cps-except.cabal
+++ b/cps-except.cabal
@@ -1,6 +1,6 @@
 cabal-version:       >=1.10
 name:                cps-except
-version:             0.0.1.1
+version:             0.0.1.2
 synopsis:            ExceptT replacement in CPS style
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/Control/Monad/CPSExcept.hs b/src/Control/Monad/CPSExcept.hs
--- a/src/Control/Monad/CPSExcept.hs
+++ b/src/Control/Monad/CPSExcept.hs
@@ -16,6 +16,16 @@
 runCPSExceptT (CPSExceptT f) = f (pure . Left)  (pure . Right)
 {-# INLINE runCPSExceptT #-}
 
+mapCPSExceptT :: (Monad m, Monad n) =>
+                 (m (Either e a) -> n (Either e' b)) -> CPSExceptT e m a
+              -> CPSExceptT e' n b
+mapCPSExceptT f m = CPSExceptT $ \failC succesC ->
+  either failC succesC =<< f (runCPSExceptT m)
+
+withExceptT :: Functor m => (e -> e') -> CPSExceptT e m a -> CPSExceptT e' m a
+withExceptT tr (CPSExceptT f) = CPSExceptT $ \failC succesC ->
+  f (failC . tr) succesC
+
 instance Functor (CPSExceptT e m) where
   fmap f (CPSExceptT g) = CPSExceptT $ \failC successC ->
     g failC (successC . f)
