[Haskell-cafe] generating parens for pretty-printing code in haskell-src-exts

Levent Erkok erkokl at gmail.com
Sat Jan 21 19:45:52 CET 2012

Neil Mitchell's HLint (http://community.haskell.org/~ndm/hlint/) warns
about "extra parens" in Haskell code. So, it must have code for
detecting those. I wonder if you can just insert parens liberally in a
first run, and then use his algorithm to remove those that are
unnecessary. The two passes can probably be fused, if you're willing
to use haskell-stc-exts and do a bit of bookkeeping..


On Sat, Jan 21, 2012 at 10:39 AM, Niklas Broberg
<niklas.broberg at gmail.com> wrote:
> Hi Conal,
> On Sun, Jan 15, 2012 at 6:45 AM, Conal Elliott <conal at conal.net> wrote:
>> I'm using haskell-src-exts together with SYB for a code-rewriting project,
>> and I'm having difficulty with parenthesization. I naïvely expected that
>> parentheses would be absent from the abstract syntax, being removed during
>> parsing and inserted during pretty-printing. It's easy for me to remove them
>> myself, but harder to add them (minimally) after transformation. Rather than
>> re-inventing the wheel, I thought I'd ask for help.
> It's not at all straight-forward to properly insert minimal parentheses
> during pretty-printing, since "minimal" is a semantic notion. For that to
> work, we would need the pretty-printer to take a set of known fixities as an
> argument, just like the parser currently does. I'm not opposed to the idea
> in principle, but it's not how it currently works.
>> Has anyone written automatic minimal parens insertion for
>> haskell-src-exts?
> ... or we could do it this way, in a two-stage modular process which gives
> even more flexibility. I'm not aware of any such functionality, currently,
> but if it exists (or happens to come into existence) then I would be
> interested in including it in haskell-src-exts.
> Best regards,
> /Niklas
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list