Scoped kind variables do not work with default associated types
I have
{-# LANGUAGE PolyKinds, TypeFamilies, ScopedTypeVariables #-}
module Bug where
class C (a :: k) where
type F (a :: k)
type F (a :: k) = Int
Compiling gives me
Bug.hs:7:11:
The signature specified kind ‘k1’, but ‘a’ has kind ‘k2’
In the type ‘(a :: k)’
In the type instance declaration for ‘F’
In the class declaration for ‘C’
The error is on the line declaring the default associated type for F
. This happens in both 7.8.2 and HEAD. Having !ScopedTypeVariables causes no change, but I put it in the example to emphasize that adding !ScopedTypeVariables is not the solution.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |