Given the existential typeT = X.{op:X, op:Xboolean}and this generic Java interface:interface T<X> {    X op();    boolean op(X something);}What are the fundamental differences between the existential type and the Java interface?Obviously there are syntactical differences, and Java's object-orientation (which also includes details such as hidden this parameters etc.). I'm not so much interested in these as in conceptual and semantic differences  though if someone would like to shed light on some finer points (such as the notational difference between T vs. T<X>), that would be appreciated too.
How do existential types differ from interfaces?
java;interfaces;type systems