La principale source de problèmes de performances dans Haskell est peut-être lorsqu'un programme crée par inadvertance un thunk d'une profondeur illimitée - cela provoque à la fois une fuite de mémoire et un débordement de pile potentiel lors de l'évaluation. L'exemple classique définit sum = foldr (+) 0
dans Haskell.
Existe-t-il des systèmes de types qui imposent statiquement le manque de tels thunks dans un programme utilisant un langage paresseux?
Il semble que cela devrait être du même ordre de difficulté que de prouver d'autres propriétés de programme statiques en utilisant des extensions système de type, par exemple certaines versions de la sécurité des threads ou de la sécurité de la mémoire.