I don't think the same erasure problem is actually a consequence of type erasure - it is just defined in the spec.