diff --git a/HSCParser.hs b/HSCParser.hs
index b2ef799e9a3af8120183c696a825a45b985f90b8..d855cf10e57d1cd691b563491ebc2fd38b7b046f 100644
--- a/HSCParser.hs
+++ b/HSCParser.hs
@@ -38,14 +38,16 @@ instance Monad Parser where
                         Success pos'' (out1++out2) imp'' b
                     Failure pos'' msg -> Failure pos'' msg
             Failure pos' msg -> Failure pos' msg
-    fail msg = Parser $ \pos _ -> Failure pos msg
+
+failp :: String -> Parser a
+failp msg = Parser $ \pos _ -> Failure pos msg
 
 instance Alternative Parser where
     empty = mzero
     (<|>) = mplus
 
 instance MonadPlus Parser where
-    mzero                     = fail "mzero"
+    mzero                     = failp "mzero"
     Parser m `mplus` Parser n =
         Parser $ \pos s -> case m pos s of
             success@(Success _ _ _ _) -> success