GHC Panic in ByteCodeGen
Try to load the following problem with ghc --interactive
of the latest HEAD.
{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}
class Search id a where
search :: a -> ()
instance Search id () where
search d = undefined
-- works:
-- instance Search () () where search d = undefined
You get an irrefutable pattern match error in ByteCodeGen:644
The code calls splitApp
and expects an AnnVar v
. What it gets instead is:
\ (@ id{tv af0} [sk]) -> search1{v rfK} [gid] @ id{tv af0} [sk]
The argument to splitApp was:
((((\ (@ id{tv af0} [sk]) ->
search1{v rfK} [gid] @ id{tv af0} [sk])
`cast` (forall id{tv af0} [sk].
ghc-prim:GHC.Prim.sym{(w) tc 34v}
(main:Main.NTCo:T:Search{tc rfe}
id{tv af0} [sk] ghc-prim:GHC.Unit.(){(w) tc 40})
:: <pred>forall id{tv af0} [sk].
ghc-prim:GHC.Unit.(){(w) tc 40} -> ghc-prim:GHC.Unit.(){(w) tc 40}
~
forall id{tv af0} [sk].
main:Main.T:Search{tc rf8}
id{tv af0} [sk] ghc-prim:GHC.Unit.(){(w) tc 40}))
@ etaT_sg1{tv} [tv])
`cast` (main:Main.NTCo:T:Search{tc rfe}
etaT_sg1{tv} [tv] ghc-prim:GHC.Unit.(){(w) tc 40}
:: <pred>main:Main.T:Search{tc rf8}
etaT_sg1{tv} [tv] ghc-prim:GHC.Unit.(){(w) tc 40}
~
ghc-prim:GHC.Unit.(){(w) tc 40}
-> ghc-prim:GHC.Unit.(){(w) tc 40}))
eta_sg2{v} [lid]
Trac metadata
Trac field | Value |
---|---|
Version | 6.11 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |