On 31/05/07, Dan Weston <[EMAIL PROTECTED]> wrote:
I thought the types were *existentially* quantified because the
constructor arguments were *universally* quantified. Or did I get it
backwards?

That'd be right, if the situation actually involved constructors.
I.e., when people talk about existential types, they normally mean:

data Foo = forall a. F a

Which is isomorphic to:

data Foo = F (exists a. a)

Hence 'existential'. However, in this instance, it's just the
higher-rank polymorphism that makes things work. For further detail,
you might want to check out the Wikibook chapter on existentials (yes,
it's a stupid place for such an explanation, as I've just realised!),
which has a section on ST:

http://en.wikibooks.org/wiki/Haskell/Existentially_quantified_types#Example:_runST

--
-David House, [EMAIL PROTECTED]
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to