So the only real reason for not defining type parameter before class name is consistency with other languages... curious because this seems as 'following other in bad direction'. Consistency with external languages breaks 'internal language consistency' (you can't say something like: typeParateter is always defined after simpleName)