[GHC] #9871: Template Haskell declaration splice causes subsequent declarations to fall out of scope

GHC ghc-devs at haskell.org
Mon Dec 8 16:02:18 UTC 2014


#9871: Template Haskell declaration splice causes subsequent declarations to fall
out of scope
-------------------------------------+-------------------------------------
              Reporter:              |            Owner:
  RyanGlScott                        |           Status:  closed
                  Type:  bug         |        Milestone:
              Priority:  normal      |          Version:  7.8.3
             Component:              |         Keywords:
  Documentation                      |     Architecture:  Unknown/Multiple
            Resolution:  fixed       |       Difficulty:  Unknown
      Operating System:              |       Blocked By:
  Unknown/Multiple                   |  Related Tickets:
       Type of failure:  GHC         |
  rejects valid program              |
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
Changes (by goldfire):

 * status:  new => closed
 * resolution:   => fixed
 * component:  Template Haskell => Documentation


Comment:

 This is by design, but I've tweaked the TH documentation to make this more
 apparent. A top-level declaration splice (your `$(deriveJSON ... )`)
 breaks up the mutual recursion among all top-level declarations. Code
 above the splice can't see code below it. This allows code within the
 splice to see some definitions in your file, and code after the splice to
 see the definitions in the splice itself.

 Thanks for reporting!

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9871#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list