[GHC] #7892: GHC accepts multiple conflicting kind signatures in type class declarations
GHC
cvs-ghc at haskell.org
Tue May 7 12:01:46 CEST 2013
#7892: GHC accepts multiple conflicting kind signatures in type class declarations
----------------------------------------+-----------------------------------
Reporter: MartijnVanSteenbergen | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler (Type checker)
Version: 7.6.3 | Keywords:
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: GHC accepts invalid program | Blockedby:
Blocking: | Related:
----------------------------------------+-----------------------------------
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.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7892>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list