diff --git a/Control/Monad/Indexed/Free/Class.hs b/Control/Monad/Indexed/Free/Class.hs
--- a/Control/Monad/Indexed/Free/Class.hs
+++ b/Control/Monad/Indexed/Free/Class.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
-module Control.Monad.Indexed.Free.Class (IxMonadFree(..)) where
+module Control.Monad.Indexed.Free.Class (IxMonadFree(..), iliftFree) where
 import Control.Monad.Indexed
 
 class IxMonad m => IxMonadFree f m | m -> f where
diff --git a/Control/Monad/Indexed/Trans/Free.hs b/Control/Monad/Indexed/Trans/Free.hs
--- a/Control/Monad/Indexed/Trans/Free.hs
+++ b/Control/Monad/Indexed/Trans/Free.hs
@@ -47,4 +47,9 @@
 transIxFreeT :: (IxFunctor g, Monad m) => (forall i j x. f i j x -> g i j x) -> IxFreeT f m i j a -> IxFreeT g m i j a
 transIxFreeT f (IxFreeT m) = IxFreeT $ m >>= \r -> return $ case r of
     Pure a -> Pure a
-    Free fm -> Free $ imap (transIxFreeT f) (f fm) 
+    Free fm -> Free $ imap (transIxFreeT f) (f fm)
+
+hoistIxFreeT :: (IxFunctor f, Monad m) => (forall x. m x -> n x) -> IxFreeT f m i j a -> IxFreeT f n i j a
+hoistIxFreeT t (IxFreeT m) = IxFreeT $ t $ m >>= \r -> return $ case r of
+    Pure a -> Pure a
+    Free fm -> Free $ imap (hoistIxFreeT t) fm
diff --git a/indexed-free.cabal b/indexed-free.cabal
--- a/indexed-free.cabal
+++ b/indexed-free.cabal
@@ -1,5 +1,5 @@
 name:                indexed-free
-version:             0.2
+version:             0.2.1
 synopsis:            indexed monads for free
 description:         A free indexed monad
 homepage:            https://github.com/fumieval/indexed-free
@@ -8,7 +8,7 @@
 author:              Fumiaki Kinoshita
 maintainer:          Fumiaki Kinoshita <fumiexcel@gmail.com>
 copyright:           Copyright (C) 2013 Fumiaki Kinoshita
-category:            Language
+category:            Control, Monad
 build-type:          Simple
 cabal-version:       >=1.8
 
