GHC panic when resolving Show instance
I'm playing around with rolling my own type defaulting and found a panic. Note: adding a stub Show (W a) instance resolves this (i.e. show _ = "test").
{- Test.hs -}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
module Test where
import Data.Proxy
data W (a :: k) = Wk | W (MkStar a)
type family MkStar (a :: k) :: *
main = print (W Proxy :: W (Proxy (~)))
$ ghc Test.hs -o test
[1 of 1] Compiling Test ( Test.hs, Test.o )
Test.hs:13:8: error:ghc: panic! (the 'impossible' happened)
(GHC version 8.0.1 for x86_64-apple-darwin):
print_equality ~
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
If x = W Proxy :: W (Proxy (~)) is only defined, there is no issue. It seems to occur exactly when resolving a Show instance for W (Proxy (~)) and one does not exist.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.0.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |