Regression error: Kind variables don't work inside of kind constructors in type families
Many thanks for the quick bug fixes around kind variables recently.
With the newest build (7.5.20120425), the following code fails:
{-# LANGUAGE PolyKinds, DataKinds, TypeFamilies, KindSignatures #-}
type family Foo (a :: k) :: Maybe k
type instance Foo a = Just a
The error is:
Kind mis-match
The first argument of `Just' should have kind `k0',
but `a' has kind `k'
In the type `Just a'
In the type instance declaration for `Foo'
The above code compiles without error on, e.g., 7.5.20120329.
I think it's worth noting that the following compiles fine, which surprised me given the error above:
type family Id (a :: k) :: k
type instance Id a = a
Trac metadata
Trac field | Value |
---|---|
Version | 7.5 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |