それにはいくつかの理論的な理由(型チェックや型推論が決定不能になるなど)か、実際的な理由(適切に実装するのが難しすぎる)がありますか?
現在、我々はに物事をラップすることができますnewtype
ように
newtype Pair a = Pair (a, a)
そして、持っている Pair :: * -> *
しかし、私たちのようなことはできませんλ(a:*). (a,a)
。
(例えば、Scalaが持っているような、それらを持っているいくつかの言語があります。)
4
1つの種類のシステムを選択して使用すると、他の種類のタイプシステムは除外されます。これは、全体を一貫させる必要があるためです。型レベルのラムダは、カテゴリー理論では非常に奇妙です...
—
tp1