GHC accepts multiple conflicting kind signatures in type class declarations
Hi,
Consider this suspicious looking program:
{-# LANGUAGE TypeFamilies #-}
class C (f :: * -> *) where
type F (f :: *) :: *
I use the same type argument name f
but specify different kinds. Now I can never define an instance anymore:
instance C [] where
-- Error: Type indexes must match class instance head
-- type F () = ()
-- Error: Expecting one more argument to `[]'
-- type F [] = ()
I think GHC should verify, if the same type argument name is used multiple times in a type class definition, that their kinds match. In that case the type class above would be rejected.
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | sjoerd@w3future.com |
Operating system | |
Architecture |