Из статьи журнала "Практика функционального программирования":

> -- Цитата:
> Апологеты функци-онального программирования объясняют это решение, в частности, тем,что отказ от изменяемых данных резко повышает корректность программи делает их значительно более удобными для анализа с помощью фор-мальных методов. Это действительно так, и в данной статье мы в этом убе-димся. Однако полный отказ от изменяемых данных зачастую не оправ-дан по следующим причинам:1. Некоторые техники программирования, применяющиеся в функци-   ональных языках без присваиваний (к примеру, ленивые вычисле-   ния), применимы в более традиционных языках, таких как Java или   C++, лишь с огромным трудом.2. Для некоторых алгоритмов и структур данных не известно или   не существует столь же эффективных аналогов без использования   присваиваний (к примеру, для хэш-таблиц и систем непересекаю-   щихся множеств).3. Многие предметные области по своей сути содержат изменяемые   объекты (например, банковские счета; элементы систем в задачах   имитационного моделирования, и т. п.), и переформулировка зада-   чи на язык неизменяемых объектов может «извратить» задачу.

Исходя из пунктов 2 и 3 и из того что в haskell'e нет присваиваний (изменяемых состояний), делаю вывод что применимость haskell'я весьма ограничена и использовать его в качестве универсального ЯВУ будет весьма затруднительно. Написание исключительно на haskell'e какой-либо достаточно большой программы/системы вследствие указанных выше пунктов было бы крайне затруднено.