@@ -323,10 +323,17 @@ opChars = ":!#$%&*+./<=>?@\\^|-~"
323operatorLetter :: MonadicParsing m => m Char
323operatorLetter :: MonadicParsing m => m Char
324operatorLetter = oneOf opChars
324operatorLetter = oneOf opChars
327+commentMarkers :: [String]
328+commentMarkers = [ "--", "|||" ]
330+invalidOperators :: [String]
331+invalidOperators = [":", "=>", "->", "<-", "=", "?=", "|", "**", "==>", "\\"]
326-- | Parses an operator
333-- | Parses an operator
327operator :: MonadicParsing m => m String
334operator :: MonadicParsing m => m String
328operator = do op <- token . some $ operatorLetter
335operator = do op <- token . some $ operatorLetter
329− when (op `elem` [":", "=>", "->", "<-", "=", "?=", "|", "**", "==>", "\\", ",", "--", "|||"]) $
336+ when (op `elem` (invalidOperators ++ commentMarkers)) $
330 fail $ op ++ " is not a valid operator"
337 fail $ op ++ " is not a valid operator"
331 return op
338 return op