#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
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs