archives

Do I need a forall if type parameters are syntactically distinguishable from type constructors?

My type-fu is too weak for TAPL atm, which probably has the answer to this --

I don't fully understand when and why explicit forall/quantification of type parameters is needed.

In Java for example, type parameters in class definitions are automatically quantified, whereas type parameters in polymorphic methods need an explicit quantification.

I wonder if explicit quantification is needed because Java uses the same syntax for type constructors (classes) and type parameters?

If type parameters are distinguishable from classes syntactically, is a forall then ever needed?