Apakah ada beberapa alasan teoretis untuk itu (seperti pemeriksaan tipe atau inferensi tipe menjadi tidak dapat dipastikan), atau alasan praktis (terlalu sulit untuk diterapkan dengan benar)?
Saat ini, kita bisa membungkusnya menjadi newtype
seperti
newtype Pair a = Pair (a, a)
dan kemudian Pair :: * -> *
tetapi kita tidak dapat melakukan sesuatu seperti λ(a:*). (a,a)
.
(Ada beberapa bahasa yang memilikinya, misalnya, Scala melakukannya .)