Подстановочные знаки нижней границы Java

Я изо всех сил пытался обдумать это и задавался вопросом, может ли кто-нибудь объяснить причины этого.

У меня есть три класса:

class Angel {}
class Person extends Angel {}
class Employee extends Person {}

Когда я пытаюсь выполнить этот код

public static void insertElements(List list){
    list.add(new Person());
    list.add(new Employee());
    list.add(new Angel());
}

Я получаю ошибку:

The method add(capture#5-of ? super Person) in the type List is not applicable for the arguments (Angel)

Я всегда читал документацию, чтобы иметь в виду имел в виду любой тип X или суперкласс X (так что в моем случае Angel является суперклассом Person) и должен быть разрешен? Очевидно нет!

У кого-нибудь есть простые примеры?