
#10823: Expose keepAlive to Template Haskell -------------------------------------+------------------------------------- Reporter: spinda | Owner: Type: feature request | Status: new Priority: normal | Milestone: 7.12.1 Component: Template Haskell | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by spinda): Is the use of type-level literals essential here? That requires the user to have {{{DataKinds}}} enabled. Otherwise, the hack can fill our use case, I think. On the other hand, I worry about Template Haskell code having to depend too much on tricks that happen to work but aren't a guaranteed, stable, documented part of the interface. See, for example, the issue with quasiquoter behavior that appeared in #10047: suddenly, the "trick" that quasiquoters didn't split declaration groups went away, because it wasn't part of the actual spec. By contrast, functionality exposed through an explicit piece of the Template Haskell API will not suddenly disappear as a consequence of a tangential patch. //That said//, as I write this, I've realized that there may be another way to approach our particular issue. {{{[lq| inline gt |]}}} attaches an annotation to {{{gt}}}, so perhaps the solution should be to tell the desugarer not to consider any function with an annotation attached as dead code. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10823#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler