Функциональное программирование "исключает состояние и изменяемые данные".
Закрытие скрывает состояние, связывая их лексическую среду и, таким образом, закрывается над их свободными переменными.
Как Haskell является чисто функциональным, если он поддерживает закрытие? Разве они не нарушают ссылочную прозрачность?