Making the future safe for the past: Adding Genericity to the Java programming language (1998)

by Gilad Bracha, Martin Odersky, David Stoutamire, Philip Wadler