
#14296: Add `Lift Exp` instance to `Language.Haskell.TH.Syntax` -------------------------------------+------------------------------------- Reporter: heisenbug | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: Component: Template Haskell | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Poor/confusing | Unknown/Multiple error message | Test Case: Blocked By: | Blocking: Related Tickets: #14030 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): However, it should be noted that a derived `Lift` instance for `Exp` would not produce the code above. The problem with that instance is that if `x :: Exp`, then `$(lift x)` would not necessarily equal `x` (or even be of type `Exp`!), which is a rule you'd generally expect to hold. (I realize this law isn't started anywhere in the Haddocks at the moment, but it probably should be.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14296#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler