diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+4.6.1
+-----
+* Added `hoistF`
+
 4.6
 ---
 * Víctor López Juan and Fabian Ruch added many documentation improvements and a whole host of proofs of correctness.
diff --git a/free.cabal b/free.cabal
--- a/free.cabal
+++ b/free.cabal
@@ -1,6 +1,6 @@
 name:          free
 category:      Control, Monads
-version:       4.6
+version:       4.6.1
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
diff --git a/src/Control/Monad/Free/Church.hs b/src/Control/Monad/Free/Church.hs
--- a/src/Control/Monad/Free/Church.hs
+++ b/src/Control/Monad/Free/Church.hs
@@ -54,6 +54,7 @@
   , iterM
   , toF
   , retract
+  , hoistF
   , MonadFree(..)
   , liftF
   ) where
@@ -142,6 +143,10 @@
 retract :: Monad m => F m a -> m a
 retract (F m) = m return Monad.join
 {-# INLINE retract #-}
+
+-- | Lift a natural transformation from @f@ to @g@ into a natural transformation from @F f@ to @F g@.
+hoistF :: (forall x. f x -> g x) -> F f a -> F g a
+hoistF t (F m) = F (\p f -> m p (f . t))
 
 -- | Convert to another free monad representation.
 fromF :: MonadFree f m => F f a -> m a
