Core Lint error in Specialise with PolyKinds and derived instance
The following causes a lint error when compiled with -O
(but not with -O0
):
{-# LANGUAGE PolyKinds #-}
{-# OPTIONS_GHC -dcore-lint -O #-}
data T a b = MkT (a b)
deriving Show
main = print (MkT (Just True))
For reference, the beginning of the (rather long) error message is:
*** Core Lint errors : in result of Specialise ***
<no location info>: Warning:
In the type ‛Main.T k_XlN Data.Maybe.Maybe GHC.Types.Bool’
Kind application error in
type ‛Main.T k_XlN Data.Maybe.Maybe GHC.Types.Bool’
Function kind = forall (k_alL :: BOX). (k_alL -> *) -> k_alL -> *
Arg kinds = [(k_XlN, BOX), (Data.Maybe.Maybe, * -> *),
(GHC.Types.Bool, *)]
It looks like something is wrong with the types of the derived Show
instance, when PolyKinds
is enabled. A similar problem applies to Eq
(and perhaps other classes).
Trac metadata
Trac field | Value |
---|---|
Version | 7.7 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |