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.z...@gmail.com] Sent: 10 November 2016 08:31 To: Simon Peyton Jones <simo...@microsoft.com> Cc: ghc-devs@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 <simo...@microsoft.com<mailto:simo...@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-boun...@haskell.org<mailto:ghc-devs-boun...@haskell.org>] On Behalf Of Alan & Kim Zimmerman Sent: 10 November 2016 07:01 To: ghc-devs@haskell.org<mailto: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
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs