
#9813: Error when reifying type constructor -------------------------------------+------------------------------------- Reporter: owst | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Template Haskell | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1899 Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj):
But in order to do so, we would have to run the declaration group containing the definition through the entire compiler pipeline, right up to linking, so that we can load it to run the splice in the latter declaration group to begin type checking it. GHC just isn't organized to work that way currently.
Yes, this is the main reason for the fairly draconian staging restriction at present. But that's only when you want to RUN a splice. If you merely want to reify a type declared "earlier" (as in the Description of this ticket), that's much less stressful. But it exists already {{{ data F = MkF $(makeLenses 'F) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9813#comment:31 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler