diff --git a/Text/ParserCombinators/Incremental.hs b/Text/ParserCombinators/Incremental.hs
--- a/Text/ParserCombinators/Incremental.hs
+++ b/Text/ParserCombinators/Incremental.hs
@@ -49,6 +49,7 @@
 import Control.Applicative (Applicative (pure, (<*>), (*>), (<*)), Alternative ((<|>)), (<$>))
 import Control.Applicative.Monoid(MonoidApplicative(..), MonoidAlternative(..))
 import Control.Monad (ap)
+import Control.Monad.Fail (MonadFail(fail))
 import Data.Maybe (fromMaybe)
 import Data.Semigroup (Semigroup(..))
 import Data.Monoid (Monoid, mempty, mappend)
@@ -155,6 +156,9 @@
    Result s r >>= f = feed s (f r)
    p >>= f = apply (>>= f) p
    (>>) = (*>)
+
+instance Monoid s => MonadFail (Parser t s) where
+   fail = Failure
 
 -- | The '+<*>' operator is specialized to return incremental parsing results.
 instance Monoid s => MonoidApplicative (Parser t s) where
diff --git a/incremental-parser.cabal b/incremental-parser.cabal
--- a/incremental-parser.cabal
+++ b/incremental-parser.cabal
@@ -1,5 +1,5 @@
 Name:                incremental-parser
-Version:             0.3.1.1
+Version:             0.3.2
 Cabal-Version:       >= 1.10
 Build-Type:          Simple
 Synopsis:            Generic parser library capable of providing partial results from partial input.
@@ -28,7 +28,7 @@
   Exposed-Modules:   Text.ParserCombinators.Incremental,
                      Text.ParserCombinators.Incremental.LeftBiasedLocal, Text.ParserCombinators.Incremental.Symmetric,
                      Control.Applicative.Monoid
-  Build-Depends:     base < 5, monoid-subclasses < 0.5
+  Build-Depends:     base >= 4.9 && < 5, monoid-subclasses < 0.5
   if impl(ghc >= 7.0.0)
      default-language: Haskell2010
 
