Analysis error at input "<-" inside do block?

I am trying to parse in Haskell using Parsec. I have a number of parsers in my code, but I get an error on one of them:

expression2 =
    do (operator lexer "|"
        a <- alternate
        as <- expression2
        return $ a:as
  ) <|> return []

Error parse error on input '<-in line a <- alternate.

Can someone explain why I am getting this error and how to fix it?

Thanks in advance.

+3
source share
1 answer

Did you put partners in the wrong place?

expression2 =
   (do  operator lexer "|"
        a <- alternate
        as <- expression2
        return $ a:as) <|> return []
+4
source

All Articles