Möglicherweise liegt die Hauptursache für Leistungsprobleme in Haskell darin, dass ein Programm versehentlich einen Teil unbegrenzter Tiefe aufbaut. Dies führt sowohl zu einem Speicherverlust als auch zu einem möglichen Stapelüberlauf bei der Auswertung. Das klassische Beispiel ist die Definition sum = foldr (+) 0
in Haskell.
Gibt es Typsysteme, die das Fehlen solcher Thunks in einem Programm mit einer faulen Sprache statisch erzwingen?
Dies scheint in der gleichen Größenordnung zu liegen wie der Nachweis anderer statischer Programmeigenschaften mithilfe von Typsystemerweiterungen, z. B. einige Varianten der Thread- oder Speichersicherheit.