MonadFail forward-compat
authorHerbert Valerio Riedel <hvr@gnu.org>
Tue, 18 Dec 2018 22:03:58 +0000 (23:03 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Tue, 18 Dec 2018 22:08:49 +0000 (23:08 +0100)
It turns out that the `fail` method was unused to begin with.

HSCParser.hs

index b2ef799..d855cf1 100644 (file)
@@ -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