Difference between Scala’s existential types and Java’s wildcard by example?

This is Martin Odersky’s answer on the Scala-users mailing list: The original Java wildcard types (as described in the ECOOP paper by Igarashi and Viroli) were indeed just shorthands for existential types. I am told and I have read in the FOOL ’05 paper on Wild FJ that the final version of wildcards has some … Read more

Existential vs. Universally quantified types in Haskell

The terms “universal” and “existential” here come from the similarly-named quantifiers in predicate logic. Universal quantification is normally written as ∀, which you can read as “for all”, and means roughly what it sounds like: in a logical statement resembling “∀x. …” whatever is in place of the “…” is true for all possible “x” … Read more

What’s the theoretical basis for existential types?

First of all, take a look at the “Curry Howard correspondence” which states that the types in a computer program correspond to formulas in intuitionistic logic. Intuitionistic logic is just like the “regular” logic you learned in school but without the law of the excluded middle or double negation elimination: Not an axiom: P ⇔ … Read more