|
Re: [Haskell-cafe] Control.Monad.Cont fun: msg#00134lang.haskell.glasgow.bugs
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@xxxxxxxxxxxxx> 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
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ ghc-Bugs-1244882 ] Template Haskell: reification of data types w/o constructors, SourceForge.net |
|---|---|
| Next by Date: | [ ghc-Bugs-1245266 ] Runtime exception on Windows, possibly due to bit operations, SourceForge.net |
| Previous by Thread: | [ ghc-Bugs-1244882 ] Template Haskell: reification of data types w/o constructors, SourceForge.net |
| Next by Thread: | RE: [Haskell-cafe] Control.Monad.Cont fun, Simon Peyton-Jones |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |