Add an Eq instance for ParseError
authorDaniel Gorin <jcpetruzza@gmail.com>
Mon, 3 Nov 2014 16:30:21 +0000 (16:30 +0000)
committerDaniel Gorin <jcpetruzza@gmail.com>
Mon, 3 Nov 2014 16:30:21 +0000 (16:30 +0000)
Text/Parsec/Error.hs

index 50944fd..6980690 100644 (file)
@@ -91,7 +91,7 @@ messageString (Message     s) = s
 -- provides the source position ('SourcePos') of the error
 -- and a list of error messages ('Message'). A @ParseError@
 -- can be returned by the function 'Text.Parsec.Prim.parse'. @ParseError@ is an
--- instance of the 'Show' class. 
+-- instance of the 'Show' and 'Eq' classes.
 
 data ParseError = ParseError !SourcePos [Message]
 
@@ -152,6 +152,12 @@ instance Show ParseError where
                             "expecting" "unexpected" "end of input"
                            (errorMessages err)
 
+instance Eq ParseError where
+    l == r
+        = errorPos l == errorPos r && messageStrs l == messageStrs r
+        where
+          messageStrs = map messageString . errorMessages
+
 -- Language independent show function
 
 --  TODO