Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information