Java type inference is broken: can we fix it?
the java language specification .