Adding wildcards to the Java programming language
Pizza into Java : Translating theory into practice