関数の部分型関係
$ \frac{T_1<: S_1 \quad S_2<:T_2}{S_1 \to S_2 <: T_1\to T_2}
参考
低意義機と値域の両方
パラメータ型とリターン型のコンビはやや複雑になる。ここでパラメータ型をCat <: Animalとし、リターン型を獣人 <: 動物とすると、その関数の型では、(Cat->獣人) <: (Animal->動物)よりも、(Animal->獣人) <: (Cat->動物)の方が、型安全という結論になっている。ref 2パターン
わからん
(Cat -> Animal) <: (Animal -> Cat)
(Cat -> Animal) :> (Animal -> Cat)
これは自明
(Animal -> Cat) <: (Cat -> Animal)
上の引数、返り値の話より
genericsがある場合