มีเหตุผลทางทฤษฎีบ้างไหม (เช่นว่าการตรวจสอบชนิดหรือการอนุมานประเภทจะไม่สามารถตัดสินใจได้) หรือเหตุผลเชิงปฏิบัติ (ยากเกินกว่าที่จะใช้อย่างถูกต้อง)
ปัจจุบันเราสามารถห่อสิ่งต่างๆให้เป็นnewtype
เช่นนั้นได้
newtype Pair a = Pair (a, a)
แล้วมี Pair :: * -> *
λ(a:*). (a,a)
แต่เราไม่สามารถทำสิ่งที่ชอบ
(มีบางภาษาที่มีพวกเขาตัวอย่างเช่นScala ทำ )
4
การเลือกระบบชนิดหนึ่งที่ใช้อยู่นั้นไม่รวมระบบประเภทอื่นเนื่องจากระบบทั้งหมดต้องมีความสอดคล้องกัน แลมบ์ดาระดับประเภทจะแปลกมากในทฤษฎีหมวด ...
—
tp1
stackoverflow.com/questions/4922560/…มีความเกี่ยวข้องเช่นกัน
—
Edward Z. Yang