I read through the Wikipedia article Existential typesExistential types. I gathered that they're called existential types because of the existential operator (∃). I'm not sure what the point of it is, though. What's the difference between
T = ∃X { X a; int f(X); } and
T = ∀x { X a; int f(X); } ?