Kind generalization
Type-level generics
Scalaでは、type-level generics(勝手にそう呼んでいた)が動かないのだが、 おおもとはSI-3443にあるようだ。たとえば
trait TypeFunction { type Domain type Codomain type apply[x <: Domain] <: Codomain }
というkind(type-levelの型)の場合、Codomain
を設定しても無視される、つまり
trait TypeFunction { type Domain type apply[x <: Domain] }
と実質的に同じになってしまう。対応する見込みは無さそうである。 Haskellではkind-generalizationというらしい。