[GHC] #12088: Type/data family instances in kind checking

GHC ghc-devs at haskell.org
Sun Aug 21 15:57:46 UTC 2016


#12088: Type/data family instances in kind checking
-------------------------------------+-------------------------------------
        Reporter:  alexvieth         |                Owner:
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler (Type    |              Version:  8.1
  checker)                           |
      Resolution:                    |             Keywords:  TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  GHC rejects       |  Unknown/Multiple
  valid program                      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #11348, #12239    |  Differential Rev(s):  Phab:D2272
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 Replying to [comment:16 alexvieth]:

 > 1. Do SCC analysis on all declarations except for open type family
 instances, to give ordered `TyClGroup`s and the set of those instances (in
 source file order).
 > 2. Before checking the `TyClGroup`s, put all equalities arising from the
 open type family instances into the environment (assume for now that
 they're well-kinded).
 > 3. Check the `TyClGroup`s in order as usual.
 > 4. Check the open type family instances (verifying or falsifying the
 assumption in 2).
 >
 > Maybe this is nonsense. Would it be possible to make and use a coercion
 axiom without kind checking the lhs and rhs types?

 I'm not sure I understand. Currently, kind-checking an instance and
 desugaring it are all done at the same time, so step (2) is hard to
 implement. Let's say we get around that barrier, though. This would then
 put ill-kinded equalities into the context. I think it would be awfully
 hard to avoid getting GHC to loop or do other silly things with a bad
 context. Perhaps you could squeeze this through, but I'm very skeptical.

 Or am I misunderstanding something?

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


More information about the ghc-tickets mailing list