diff --git a/Control/Monad/Coroutine.hs b/Control/Monad/Coroutine.hs
--- a/Control/Monad/Coroutine.hs
+++ b/Control/Monad/Coroutine.hs
@@ -71,13 +71,15 @@
 where
 
 import Control.Applicative (Applicative(..))
-import Control.Monad (Monad(..), ap, liftM, (<=<))
+import Control.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)
 
 import Control.Monad.Parallel (MonadParallel(..))
+
+import Prelude hiding (fail)
 
 -- | Suspending, resumable monadic computations.
 newtype Coroutine s m r = Coroutine {
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.1
+Version:             0.9.1.2
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Synopsis:            Coroutine monad transformer for suspending and resuming monadic computations
