[GHC] #10331: Accept HsSyn in splices and generate it in quotes (ghc-api)

GHC ghc-devs at haskell.org
Mon Apr 20 16:11:44 UTC 2015


#10331: Accept HsSyn in splices and generate it in quotes (ghc-api)
-------------------------------------+-------------------------------------
        Reporter:  ezyang            |                   Owner:
            Type:  feature request   |                  Status:  new
        Priority:  low               |               Milestone:
       Component:  Template Haskell  |                 Version:  7.11
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:
 Related Tickets:                    |                Blocking:
                                     |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by goldfire):

 I propose a slightly different direction: parameterize TH over the choice
 of AST. Something like

 {{{
 class ExpAST e where
   repExp :: LHsExpr Name -> DsM (Core (TH.Q e))
   cvExp  :: e -> CvtM (LHsExpr RdrName)
 }}}

 Then, we define instances `ExpAST (LHsExpr Name)` and `ExpAST TH.Exp`.
 Perhaps the haskell-src-exts folks can define their own instance, too, if
 they so choose.

 I haven't thought this through, so apologies if this is a terrible idea.

 While we're moving in this direction, it might be nice to expose `TcM` to
 clients of TH. I know various terrible things could be done with the power
 of `TcM`, but nice things can, too.

 (In particular, I've wanted to be able to expand closed type families from
 TH code. I've implemented that functionality once [in GHC], and I dearly
 don't want to do it again! Exposing `TcM` would allow me to start thinking
 about how to do this.)

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10331#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list