[GHC] #9813: Error when reifying type constructor

GHC ghc-devs at haskell.org
Mon Feb 15 14:16:56 UTC 2016


#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


More information about the ghc-tickets mailing list