@@ -46,7 +46,7 @@ isOp c = isSymbol c || elem c "+-/*=.$<>:&|^?%#@~!"
4646
4747symOp :: (Monad m) => ParsecT [Char] u m String
4848symOp = do op <- many1 (satisfy isOp)
49− guard (op `notElem` [ "=", "..", "->", "--" ])
49+ guard (op `notElem` [ "=", "..", "->", "--", "|", "\8594" ])
5050 return op
5151
5252arrow :: (Monad m) => ParsecT [Char] u m String
@@ -91,9 +91,9 @@ betwixt a b c = do char a ; out <- c
9191 char b <?> "closing '" ++ [b] ++ "'" ; return out
9292
9393surround a z name p = do
94− char a ; whitespace ; a <- p ; whitespace
94+ char a ; whitespace ; v <- p ; whitespace
9595 char z <?> unwords ["closing", name, show z]
96− return a
96+ return v
9797
9898braces :: (Monad m) => ParsecT [Char] u m a -> ParsecT [Char] u m a
9999braces = surround '[' ']' "brace"