[Haskell-cafe] A curios monad
Andrew Coppin
andrewcoppin at btinternet.com
Sat Dec 13 18:00:49 EST 2008
David Menendez wrote:
> On Thu, Dec 11, 2008 at 1:48 PM, Andrew Coppin
> <andrewcoppin at btinternet.com> wrote:
>
>> BTW, does anybody know how rank-N types are different from existential
>> types?
>>
>
> You mean the Haskell extensions?
>
> ExistentialQuantification lets you define types such as,
>
> data SomeNum = forall a. Num a => SomeNum a
>
> RankNTypes lets you nest foralls arbitrarily deep in type signatures,
>
> callCC :: ((forall b. a -> m b) -> m a) -> m a -- this is rank-3
>
> RankNTypes implies ExistentialQuantification (among others).
>
So how is
foo :: ((forall b. a -> m b) -> m a) -> m a
different from
bar :: forall b. ((a -> m b) -> m a) -> m a
then?
More information about the Haskell-Cafe
mailing list