Có một số lý do lý thuyết cho điều đó (như việc kiểm tra kiểu hoặc suy luận kiểu sẽ trở nên không thể giải quyết được), hoặc lý do thực tế (quá khó để thực hiện đúng)?
Hiện tại, chúng ta có thể gói mọi thứ vào newtype
như
newtype Pair a = Pair (a, a)
và sau đó có Pair :: * -> *
nhưng chúng ta không thể làm một cái gì đó như λ(a:*). (a,a)
.
(Có một số ngôn ngữ có chúng, ví dụ, Scala có .)
4
Việc chọn một loại hệ thống loại vào sử dụng sẽ loại trừ loại hệ thống loại khác vì toàn bộ điều cần phải nhất quán. Loại lambda cấp độ sẽ rất lạ trong lý thuyết thể loại ...
—
tp1
stackoverflow.com/questions/4922560/ cũng có liên quan.
—
Edward Z. Yang