[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