diff --git a/Control/Monad/Coroutine.hs b/Control/Monad/Coroutine.hs
--- a/Control/Monad/Coroutine.hs
+++ b/Control/Monad/Coroutine.hs
@@ -72,6 +72,7 @@
 
 import Control.Applicative (Applicative(..))
 import Control.Monad (Monad(..), ap, liftM, (<=<))
+import Control.Monad.Fail (MonadFail(fail))
 import Control.Monad.IO.Class (MonadIO(..))
 import Control.Monad.Trans.Class (MonadTrans(..))
 import Data.Either (partitionEithers)
diff --git a/monad-coroutine.cabal b/monad-coroutine.cabal
--- a/monad-coroutine.cabal
+++ b/monad-coroutine.cabal
@@ -1,5 +1,5 @@
 Name:                monad-coroutine
-Version:             0.9.1
+Version:             0.9.1.1
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Synopsis:            Coroutine monad transformer for suspending and resuming monadic computations
@@ -23,6 +23,6 @@
 
 Library
   Exposed-Modules:   Control.Monad.Coroutine, Control.Monad.Coroutine.SuspensionFunctors, Control.Monad.Coroutine.Nested
-  Build-Depends:     base < 5, transformers >= 0.2 && < 0.6, transformers-compat >= 0.3 && < 0.7, monad-parallel < 1.0
+  Build-Depends:     base >= 4.9 && < 5, transformers >= 0.2 && < 0.6, transformers-compat >= 0.3 && < 0.7, monad-parallel < 1.0
   if impl(ghc >= 7.0.0)
      default-language: Haskell2010
