Wouldn’t it be nice if we could specify that more than one of the arguments to a method can participate fully, at runtime, in the dispatch process?

Here’s how this might look in Java. Or might have looked in Java.

I gather that with Java 1.5, the language’s keepers came up with an altogether different role for angle bracketed type designators.

Someone evidently decided that what Java really needed, to relieve the onerous, evidently unbearable burden of writing an explicit downcast for Iterator assignments, was a full blown parametric polymorphic type system, that, when compiled down to byte code, mysteriously vanishes without a trace.

Java now has not one but two useless type systems as seamlessly integrated as, well, Great Britain and Northern Ireland / HP and Compaq / Bosnia-Herzegovina…

Someone should be tried for crimes against Computer Science for inflicting this odious abomination on the body politic. In the hands of the untutored, it promises to undermine / stand in the way  of everything about Java that had made it possible to engage in the faux-dynamic style of programming that helped to make many design patterns practical / popular…