[GHC] #13650: Implement KPush in types

GHC ghc-devs at haskell.org
Fri May 5 14:51:22 UTC 2017


#13650: Implement KPush in types
-------------------------------------+-------------------------------------
           Reporter:  goldfire       |             Owner:  (none)
               Type:  task           |            Status:  new
           Priority:  high           |         Milestone:  8.4.1
          Component:  Compiler       |           Version:
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 A recent commit contributed a
 [https://phabricator.haskell.org/diffusion/GHC/browse/master/compiler/types/Type.hs;a483e711da7834bc952367f554ac4e877b4e157a$1191
 Note] that explains why we need the dreaded KPush rule to be implemented
 in `splitTyConApp`. Without KPush there, it's possible that we can have
 two types t1 and t2 such that {{{t1 `eqType` t2}}} and yet they respond
 differently to `splitTyConApp`: t1 = `(T |> co1) (a |> co2)` and t2 = `T
 a`. Both t1 and t2 are well-kinded and can have the same kind. But one is
 a `TyConApp` and one is an `AppTy`. (Actually, looking at this, perhaps
 the magic will be in `mkAppTy`, not `splitTyConApp`.) But I have to look
 closer.

 This ticket serves as a reminder to do so.

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


More information about the ghc-tickets mailing list