Wow, thanks! Geoff
On 04/13/2016 07:34 PM, Facundo Domínguez wrote: > Here is the wiki page [1] and here is the ticket [2] > > Best > > [1] https://ghc.haskell.org/trac/ghc/wiki/TemplateHaskell/Reify > [2] https://ghc.haskell.org/trac/ghc/ticket/11832 > > On Wed, Apr 13, 2016 at 5:37 PM, Geoffrey Mainland <mainl...@drexel.edu> > wrote: >> I'm afraid I'm coming late to the game, so I'm not clear on the extent >> of the problem (or even precisely what it is that isn't working). >> >> In addition to creating a ticket, it would be great to have a wiki page >> that outlines the problem and proposed solution(s). >> >> The TH finalizer stuff was meant to make support for things like >> language-c-inline easier, but it is incomplete. Before we go munging >> around again, it would be good to have a list of use cases so we can >> cover all the bases this time. >> >> Geoff >> >> On 04/13/2016 04:25 PM, Richard Eisenberg wrote: >>> Very interesting. >>> >>> On Apr 13, 2016, at 5:09 AM, "Boespflug, Mathieu" <m...@tweag.io> wrote: >>>> * Should we consider it a bug (and file a ticket) that reification in >>>> typed splices is able to observe the order of type checking, just like >>>> reify used to do in untyped splices? >>> I think so, yes. >>> >>>> * While Richard's proposed addGroupFinalizer might not work with >>>> untyped splices, perhaps it can be made to work with typed splices, >>>> since these run in the type checker? >>> I think so, yes. Perhaps it would be more well-typed to have typed TH >>> splices run in a new monad TQ such that TQ allows addGroupFinalizer but Q >>> does not. This may be overkill though. >>> >>>> * If part of the solution here is to use typed splices, how do we get >>>> quasiquotation to be syntactic sugar for a *typed* splice? Do we want >>>> to be introducing a typed quasiquotation syntax, just like Geoff did >>>> for much of the rest of Template Haskell? >>> Maybe. Quasiquotation sugar is very light: [blah|...|] is the same as >>> $(selector blah "...") where `selector` is the right record selector >>> depending on the splice context. Is it worth trying to expand >>> quasiquotation syntax to work with typed TH? I'm unconvinced it's worth the >>> bother. Also, note that doing [blah||...||] is not backward-compatible, >>> because that looks like an untyped quasiquote that begins and ends with a >>> vertical bar. We could get around this problem by using a new extension, >>> but the waters are just getting muddier, and for seemingly little benefit. >>> >>> Richard >>> >>>> Facundo and I think that something like Richard's addGroupFinalizer is >>>> still interesting to have, because while reification during type >>>> checking sounds dubious, reification /after/ the declaration group is >>>> fully type checked is perfectly safe. >>>> >>>> Best, >>>> -- >>>> Mathieu Boespflug >>>> Founder at http://tweag.io. >>>> >>>> >>>> On 13 April 2016 at 04:25, Richard Eisenberg <e...@cis.upenn.edu> wrote: >>>>> On Apr 12, 2016, at 5:35 PM, Facundo Domínguez >>>>> <facundo.doming...@tweag.io> wrote: >>>>> >>>>>> Hello Richard, >>>>>> >>>>>>> TH will offer a new function `addGroupFinalizer :: Q () -> Q ()` that >>>>>>> runs its argument in the local typing environment available when >>>>>>> addGroupFinalizer is called. >>>>>> When considering this approach, how could one capture the local typing >>>>>> environment given that the untyped splices are run in the renamer >>>>>> where no such environment is populated yet? >>>>>> >>>>> Ah. Excellent point. I hadn't quite thought it through. Not sure, off the >>>>> top of my head, how to get around this. >>>>> >>>>> Richard >>>>> _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs