David Menendez wrote:
On Thu, Dec 11, 2008 at 1:48 PM, Andrew Coppin
<andrewcop...@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?

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to