[GHC] #12034: Template Haskell + hs-boot = Not in scope during type checking, but it passed the renamer

GHC ghc-devs at haskell.org
Wed Dec 26 07:54:36 UTC 2018


#12034: Template Haskell + hs-boot = Not in scope during type checking, but it
passed the renamer
-------------------------------------+-------------------------------------
        Reporter:  ezyang            |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  low               |            Milestone:
       Component:  Template Haskell  |              Version:  8.0.1-rc2
      Resolution:                    |             Keywords:  backpack hs-
                                     |  boot
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Ericson2314):

 I have a situation with a {{{makeClassy}} classy lens class cycle that I
 cannot break (modulo manually expanding the TH). I'd like something like
 an ''intra''-module hs-boot file to fix this.

 I gather from this issue that I shouldn't waste time breaking up my
 module, as .hs-boot as it currently stands won't save me.

 Replying to [comment:3 ezyang]:
 >  Here is a restriction for hs-boot files and TH which might solve this
 problem....

 Ezyang's proposal would also not help because the splice defines the Has*
 class.

 I believe the staging restriction as it currently stands ought just to
 apply to code executed as part of a TH splice. Quoted variable resolution
 should be fine: if and only the user uses one of the APIs to learn more
 about a defintion, they should only hit a Nothing/exception because a
 staging restriction.

 intra-module hs-boot would then be a way to assert that some further-down
 splice defines some names, enough for names, including quoted names, to
 resolve.

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


More information about the ghc-tickets mailing list