The big point is, why are the C++ and Java morons such losers? They make an endless chain of mistakes.
They lack proper dynamic typing in their languages, and to fix this fuckup, they introduce even more fuckup, language bloat, and enterprise hell.
Then they go defining stupid syntaxes and operators such as <...>. Who the hell uses <...> in a language that already uses < and >? How can you tell in
>>9 if Map<K means to evaluate whether object Map is lesser than object K? Or is it that the language is so limited that you can't attempt to compare two any objects, or somethings are not even objects? Way to lose, motherfuckers.
If you want to introduce this generic shit because your type system is so big a failure, better define macros. And for that, you already have all the syntax you need. You can use:
defmacro(
...
);
and not bloat the language. Stop fixing shitty decisions with even shittier decisions.