Quizás la principal fuente de problemas de rendimiento en Haskell es cuando un programa sin darse cuenta acumula una cantidad de profundidad ilimitada, lo que provoca una pérdida de memoria y un desbordamiento potencial de la pila al evaluar. El ejemplo clásico se define sum = foldr (+) 0
en Haskell.
¿Hay algún tipo de sistema que exija estáticamente la falta de tales thunks en un programa que usa un lenguaje perezoso?
Parece que esto debería estar en el mismo orden de dificultad que probar otras propiedades del programa estático usando extensiones de sistema de tipo, por ejemplo, algunos aspectos de seguridad de subprocesos o seguridad de memoria.