[GHC] #14396: Hs-boot woes during family instance consistency checks

GHC ghc-devs at haskell.org
Sun Oct 29 04:57:40 UTC 2017


#14396: Hs-boot woes during family instance consistency checks
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.2.1
      Resolution:                    |             Keywords:
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 ezyang):

 Going back to #11062

 In this ticket, we decided to fix one particular version of the problem by
 *deferring* checking a boot-declared type family for conflicts until after
 we actually typechecked the type family.  But as subsequent tickets
 demonstrated, it is not only the type family which can be defined too
 early: types referenced inside the LHS and RHS of the instance can also be
 referenced too early.  So let's revisit the fix from before. Here is my
 proposal:

 For every axiom, check it for consistency with the environment after all
 hs-boot types it mentions on the LHS or RHS (I am not sure if this has to
 be transitive) are finished being typechecked.  The most expedient way to
 implement this is probably to extend `FamInst` to also record a list of
 "involved" Names, which we can key off of (we can't actually poke `fi_tys`
 or `fi_rhs` because they would trigger typechecking of the hs-boot type.)

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


More information about the ghc-tickets mailing list