บางทีแหล่งที่มาหลักของปัญหาประสิทธิภาพการทำงานใน Haskell คือเมื่อโปรแกรมสร้างความลึกที่ไม่ได้ จำกัด ซึ่งทำให้เกิดการรั่วไหลของหน่วยความจำและการล้นสแต็กที่อาจเกิดขึ้น ตัวอย่างคลาสสิกคือการกำหนดsum = foldr (+) 0
ใน Haskell
มีระบบประเภทใดบ้างที่มีการบังคับใช้การขาด thunks ดังกล่าวในโปรแกรมที่ใช้ภาษาสันหลังยาวหรือไม่?
ดูเหมือนว่าสิ่งนี้ควรอยู่ในลำดับเดียวกันของความยากลำบากเช่นเดียวกับการพิสูจน์คุณสมบัติของโปรแกรมคงที่อื่น ๆ โดยใช้ส่วนขยายของระบบประเภทเช่นความปลอดภัยของเธรดบางส่วนหรือความปลอดภัยของหน่วยความจำ