I\'m struggling to get my head around this and was wondering if someone could explain the reasons for this.
I have three classes:
class Angel {} clas
Think about it the other way around: For the type bound on List super Person>, List is obviously a valid type for the parameter. If the compiler allowed your code, it would allow you to insert something of type Angel into a List.
List super Person>
List
Angel