ppr of HsDo
Simon Peyton Jones
simonpj at microsoft.com
Thu Nov 10 10:02:31 UTC 2016
It’s not about GHC’s programming style, is it? It’s about what the pretty-printer does. If it were me I’d use braces and semicolons everywhere, so that I could guarantee to parse it easily.
But that’s not a strong opinion and I would willingly yield to others!
Simon
From: Alan & Kim Zimmerman [mailto:alan.zimm at gmail.com]
Sent: 10 November 2016 08:31
To: Simon Peyton Jones <simonpj at microsoft.com>
Cc: ghc-devs at haskell.org
Subject: Re: ppr of HsDo
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 <simonpj at microsoft.com<mailto:simonpj at microsoft.com>> wrote:
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 at haskell.org<mailto:ghc-devs-bounces at haskell.org>] On Behalf Of Alan & Kim Zimmerman
Sent: 10 November 2016 07:01
To: ghc-devs at haskell.org<mailto:ghc-devs at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20161110/91febad3/attachment.html>
More information about the ghc-devs
mailing list