[GHC] #14880: GHC panic: updateRole

GHC ghc-devs at haskell.org
Mon Mar 5 17:43:26 UTC 2018


#14880: GHC panic: updateRole
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler (Type    |              Version:  8.2.2
  checker)                           |
      Resolution:                    |             Keywords:  Roles
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 Even simpler
 {{{
  data Foo (x :: Type) :: forall (a :: x). Proxy a -> Type

  data Bar :: Type -> Type where
      MkBar :: forall x arg.
               -- Commenting out the line below makes the issue go away
               Proxy (Foo arg) ->
               Bar x
 }}}
 The panic is caused because the existentials for `MkBar` are messed up;
 {{{
 {-  MkBar
     univ_tvs:   (x :: *)
     ex_tvs:     (a :: arg_aZv)
                 (arg_XZx :: *)
     arg ty:     Proxy @arg_XZx a
     result ty:  Foo @arg_XZx a
 }}}
 Note the confusion of two `arg` variables.  Ran out of time at that point.

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


More information about the ghc-tickets mailing list