共変性と反変性 (計算機科学)
用語の由来
これらの用語は数学の圏論に由来する。型システムにおける型が圏 C をなし、射が派生型関係を表すものとする。派生型関係はリスコフの置換原則に従うものとみなす。すなわち、型 t のいかなる式も、型 s が s ≤ t を満たすならば、型 s の式で置き換えることが可能である。
型 p を受け取って型 r を返す関数を定義すると、型システムにおいてはその関数名と対応づけられた新たな型 p → r を生成したことになる。このような「関数定義」演算子がすなわち、この新たな型を生成する関手 F : C × C → C である。リスコフの置換原則から、この関手は、第1引数においては反変で、第2引数においては共変でなければならない。