。所谓的变型（variance）是指如何根据组成型别之间的子型别关系，来确定更复杂的型别之间（例如列表之于列表，回传的函数之于回传的函数...等等）的子型别关系。当我们用型别构造出更复杂的型别，原本型别的子型别性质可能被保持、反转、或忽略───取决于型别构造器的变型性质。例如在C#中：程式语言的设计者在制定阵列、继承、泛型数据类别等的型别规则时，必须将“变型”列入考量。将型别构造器设计成是协变、逆变而非不变的，可以让更多的程式俱备良好的型别。另一方面，程式员经常觉得逆变是不直观的；如果为了避免执行