Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parse Error on Input '<-' inside a do block?

I'm trying to do some parsing in Haskell using Parsec. I've got a number of parsers in my code, but am getting an error on one of them:

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

The error is parse error on input '<-, on the a <- alternate line.

Can anyone explain why I'm getting this error, and how to fix it?

Thanks in advance.

like image 687
dragonridingsorceress Avatar asked Mar 10 '26 13:03

dragonridingsorceress


1 Answers

Did you put the parens in the wrong place?

expression2 =
   (do  operator lexer "|"
        a <- alternate
        as <- expression2
        return $ a:as) <|> return []
like image 62
Don Stewart Avatar answered Mar 13 '26 14:03

Don Stewart



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!