[Haskell-cafe] Control.Monad.Cont fun
Simon Peyton-Jones
simonpj at microsoft.com
Wed Jul 27 04:04:59 EDT 2005
Ah I see. This is really a bug. GHC6.4 should accept the example. I've just fixed it.
thanks for mentioning it.
Simon
| -----Original Message-----
| From: Thomas Jäger [mailto:thjaeger at gmail.com]
| Sent: 26 July 2005 13:38
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-bugs at haskell.org
| Subject: Re: [Haskell-cafe] Control.Monad.Cont fun
|
| Basically, the pre-ghc6.4 way of doing scoped type variables breaks
| down for higher-rank functions. For example
|
| foo :: (forall a. a -> b) -> b
| foo (f :: forall a. a -> b) = f undefined :: b
|
| is accepted by ghc-6.2 but rejected by the current ghc with an error message
| Couldn't match `forall a. a -> b' against `forall a. a -> b'
|
| Of course, in ghc-6.4 we don't need f's type annotation so this will work fine:
|
| bar :: forall b. (forall a. a -> b) -> b
| bar f = f undefined :: b
|
| But I'm not aware of anything that will work simulateously for both versions.
|
| Thomas
|
| On 7/26/05, Simon Peyton-Jones <simonpj at microsoft.com> wrote:
| > Andrew, Thomas
| >
| > Can you send me a self-contained module that elicits the mysterious message (I agree that it is a
| strange one)? Can you also include the variant that does work.
| >
| > Then I'll look into it.
| >
| > Thanks
| >
| > Simon
More information about the Glasgow-haskell-bugs
mailing list