#7545: Type variable capture in InstanceSigs message
-----------------------------+----------------------------------------------
Reporter:  Feuerbach         |          Owner:                  
    Type:  bug               |         Status:  new             
Priority:  normal            |      Component:  Compiler        
 Version:  7.6.1             |       Keywords:                  
      Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
 Failure:  None/Unknown      |      Blockedby:                  
Blocking:                    |        Related:                  
-----------------------------+----------------------------------------------
 If I load this file in GHCi:

 {{{
 {-# LANGUAGE RankNTypes, InstanceSigs #-}

 class C a where
   f :: a -> b

 instance C (a -> b) where
   f :: x
   f = undefined
 }}}

 I get the message

 {{{
     Method signature does not match class; it should be
       f :: forall b. (a -> b) -> b
     In the instance declaration for `C (a -> b)'
 }}}

 However, this is not the correct type (and if I copy-paste it, GHCi would
 still complain). The b from the instance head got captured. The correct
 type would be forall b1. (a -> b) -> b1.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7545>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to