子类所以即使 Fn 接受一只 Animal 也同样是安全的。一般规则是：S → S ≦ T → T 当T ≦ S且S ≦ T.换句话说，类型构造符→对输入类型是逆变的而对输出类型是协变的。这一规则首先被Luca Cardelli正式提出。在处理高阶函数时，这一规则可以应用多次。例如，可以应用这一规则两次，得到(A'→B)→B ≦ (A→B)→B 当 A'≦A。即，型别(A→B)→B在A位置是"协变的"。在跟踪判断为何某一型别特化不是型别安全的可能令人困扰，但是比较容易计算哪个位置是协变或逆变：一个位