
#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 rwbarton): In comment:19 I neglected the case of comment:20, in which a function without a splice refers to a function with a splice. I still think the main point, that there are only two kinds of declaration per declaration group is correct. In each declaration group we have * the declarations which do not use a splice, either directly or via reference to another declaration in the same group which uses a splice; * the declarations which do use a splice, either directly or via reference.... We process the first group, then process the second group, making the first group (but none of the second group) available to reify. This is just supposed to be a restatement of goldfire's comment:15, taking into account that "any declaration with a splice in it is considered to depend on all other declarations in the region" means that there are effectively at most two of goldfire's "chunks" per declaration group. (In fact, there might be several mutually recursive groups of declarations that do not (even indirectly) contain splices. But then it doesn't matter whether we process them as a single group or as several groups, because the declarations in the group contain no splices anyways.) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9813#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler