[Haskell-cafe] ANN: th-desugar simplifies Template Haskell processing

Anders Persson anders.cj.persson at gmail.com
Mon Sep 2 08:31:54 CEST 2013


For expanding/inlining type synonyms, there is also th-expand-syns (
http://hackage.haskell.org/package/th-expand-syns).

/Anders


On Mon, Sep 2, 2013 at 3:25 AM, Richard Eisenberg <eir at cis.upenn.edu> wrote:

> No, but I agree that this behavior is useful and in the spirit of
> th-desugar. I can add this to the next version, which should come out in a
> few days (tomorrow?), because I've noticed a bug with the scoping of
> as-patterns in let statements.
>
> Thanks for the suggestion!
> Richard
>
> On Aug 31, 2013, at 12:06 PM, Sjoerd Visscher wrote:
>
> > Great package!
> >
> > One question: Do you remove/inline type synonyms? I ask because I just
> ran into this with some TH code. I'm looking for types that end with -> a,
> but that fails when type synonyms are involved.
> >
> > Sjoerd
> >
> > On Aug 30, 2013, at 2:08 AM, Richard Eisenberg <eir at cis.upenn.edu>
> wrote:
> >
> >> I've just uploaded my new th-desugar package, which enables easier
> processing of Template Haskell source syntax by desugaring it into a much
> simpler core language. The meaning of the code after desugaring is
> identical to before desugaring, but the syntax is much simpler. To wit,
> th-desugar simplifies out all of the following constructs:
> >>
> >> - guarded expressions in both functions and case statements
> >> - "where" declarations
> >> - do syntax
> >> - list/monad comprehensions
> >> - record creation / updates
> >> - as patterns
> >> - non-trivial patterns in a lambda expression
> >> - lambda-case
> >> - multi-way if
> >> - several more
> >>
> >> If you are writing a library that manipulates Template Haskell syntax,
> you may wish to consider if th-desugar will make your job easier by forcing
> you to consider fewer cases. The one source Haskell construct supported by
> Template Haskell but not supported by th-desguar is view patterns, mostly
> because these interact quite non-trivially with pattern binders. It's
> possible this hole will be closed in a future version.
> >>
> >> Enjoy!
> >> Richard
> >> _______________________________________________
> >> Haskell-Cafe mailing list
> >> Haskell-Cafe at haskell.org
> >> http://www.haskell.org/mailman/listinfo/haskell-cafe
> >
> >
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130902/6b48b684/attachment.htm>


More information about the Haskell-Cafe mailing list