Можливо, головне джерело проблем з продуктивністю в Haskell - це коли програма ненавмисно накопичує частину необмеженої глибини - це спричиняє як витік пам'яті, так і потенційний переповнення стека при оцінці. Класичний приклад - визначення sum = foldr (+) 0
в Haskell.
Чи існують системи типів, які статично забезпечують відсутність таких громів у програмі, що використовує ледачу мову?
Схоже, це має бути в тому ж порядку складності, що і доведення інших статичних програмних властивостей за допомогою системних розширень, наприклад, деяких ароматів безпеки потоку або безпеки пам’яті.