Adding Type Constructor Parameterization to Java.
Vincent Cremet, Philippe Altherr · The Journal of Object Technology · 2008
We present a generalization of Java's parametric polymorphism that enables parameterization of classes and methods by type constructors, i.e., functions from types to types.Our extension is formalized as a calculus called FGJ ω .It is implemented in a prototype compiler and its type system is proven safe and decidable.We describe our extension and motivate its introduction in an object-oriented context through two examples: the definition of generic data-types with binary methods and the definition of generalized algebraic data-types.The Coq proof assistant was used to formalize FGJ ω and to mechanically check its proof of type safety.