
Thanks.
And any thoughts on my proposal to do away with the braces/semi
completely? I suspect GHC is the only significant body of code that uses
that style still.
Alan
On Thu, Nov 10, 2016 at 10:24 AM, Simon Peyton Jones
I think it’s because the “;” is treated as part of the let not part of the do. After all, how does the implicit layout of the let know that the let-bindings are finished?
This should work
foo = do { let { x = 1 }; Just 5 }
Now the let bindings are clearly brought to an end. Or this
foo = do { let x = 1
; Just 5 }
Now the “’;” is to the left of the x=1 and so brings the let’s implicit layout to an end.
But not this!
foo = do { let x = 1; Just 5 }
So it’s a bug in the pretty-printer, not the parser
SImon
*From:* ghc-devs [mailto:ghc-devs-bounces@haskell.org] *On Behalf Of *Alan & Kim Zimmerman *Sent:* 10 November 2016 07:01 *To:* ghc-devs@haskell.org *Subject:* ppr of HsDo
The pretty printer turns
foo = do let x = 1 Just 5
into
foo = do { let x = 1; Just 5 }
which does not parse, complaining about "parse error on input ‘Just’"
Is this a parser error or a ppr problem? I am keen to fix the ppr to output
foo = do let x = 1 Just 5
but I am not sure if there is a parser bug too.
Alan