its confusing, but seems to me is a fact of life people have to learn, cutting things off break needed behavior. and maybe a little help from compiler warnings might be ok, but you still have to understand the concept of type erasure in the java VM to survive.