diff --git a/Control/Monad/Exception.hs b/Control/Monad/Exception.hs
--- a/Control/Monad/Exception.hs
+++ b/Control/Monad/Exception.hs
@@ -75,12 +75,13 @@
 -- * Reexports
     Exception(..), SomeException(..), Typeable(..),
     Try(..), NothingException(..),
-    Failure(..), MonadFailure, WrapFailure(..),
+    Failure(..), WrapFailure(..),
     MonadLoc(..), withLocTH
 ) where
 
 import Control.Monad.Exception.Base
 import Control.Monad.Exception.Catch
+import Control.Monad.Exception.Instances()
 import Control.Failure
 import Control.Monad.Loc
 import Data.Typeable
diff --git a/Control/Monad/Exception/Instances.hs b/Control/Monad/Exception/Instances.hs
new file mode 100644
--- /dev/null
+++ b/Control/Monad/Exception/Instances.hs
@@ -0,0 +1,22 @@
+module Control.Monad.Exception.Instances where
+
+import Control.Monad.Exception.Throws
+import Data.Typeable
+import Safe.Failure
+
+-- Encoding the exception hierarchy of safe-failure
+
+instance Throws TailFailure (Caught SafeException l)
+instance Throws HeadFailure (Caught SafeException l)
+instance Throws InitFailure (Caught SafeException l)
+instance Throws LastFailure (Caught SafeException l)
+instance Throws MinimumFailure (Caught SafeException l)
+instance Throws MaximumFailure (Caught SafeException l)
+instance Throws Foldr1Failure (Caught SafeException l)
+instance Throws Foldl1Failure (Caught SafeException l)
+instance Throws FromJustFailure (Caught SafeException l)
+instance Throws IndexFailure (Caught SafeException l)
+instance Throws ReadFailure (Caught SafeException l)
+instance (Typeable a, Show a) => Throws (LookupFailure a) (Caught SafeException l)
+
+
diff --git a/control-monad-exception.cabal b/control-monad-exception.cabal
--- a/control-monad-exception.cabal
+++ b/control-monad-exception.cabal
@@ -1,5 +1,5 @@
 name: control-monad-exception
-version: 0.8.0.4
+version: 0.9.0
 Cabal-Version:  >= 1.6
 build-type: Simple
 license: PublicDomain
@@ -74,7 +74,8 @@
 
 Library
   buildable: True 
-  build-depends: failure
+  build-depends: failure >= 0.1 && < 0.2
+               , safe-failure >= 0.5
                , monadloc
 
   if flag(extensibleExceptions)
@@ -99,6 +100,7 @@
      Control.Monad.Exception.Base
      Control.Monad.Exception.Catch
      Control.Monad.Exception.Throws
+     Control.Monad.Exception.Instances
 
   ghc-options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
 
