Kovarianz, Kontravarianz und Invarianz beschreiben, wie sich die vorhandene Typvererbungshierarchie ändert, wenn sie einer Transformation unterzogen wird (z. B. Verwendung innerhalb von Generika). Wenn die Transformation die Reihenfolge der ursprünglichen Hierarchie beibehält, ist sie "kovariant". Wenn es es umkehrt, ist es "kontravariant". Wenn es bricht, ist es "invariant".