@@ -323,10 +323,17 @@ opChars = ":!#$%&*+./<=>?@\\^|-~"
323323operatorLetter :: MonadicParsing m => m Char
324324operatorLetter = oneOf opChars
325325
326+
327+commentMarkers :: [String]
328+commentMarkers = [ "--", "|||" ]
329+
330+invalidOperators :: [String]
331+invalidOperators = [":", "=>", "->", "<-", "=", "?=", "|", "**", "==>", "\\"]
332+
326333-- | Parses an operator
327334operator :: MonadicParsing m => m String
328335operator = do op <- token . some $ operatorLetter
329− when (op `elem` [":", "=>", "->", "<-", "=", "?=", "|", "**", "==>", "\\", ",", "--", "|||"]) $
336+ when (op `elem` (invalidOperators ++ commentMarkers)) $
330337 fail $ op ++ " is not a valid operator"
331338 return op
332339