Как я понял, переменные в Haskell неизменяемы (таким образом, они не являются "переменными" ).
В этом случае, если у нас есть сложная и большая структура данных, например красно-черное дерево, как мы должны реализовывать операции, которые фактически изменяют структуру данных?
Создайте копию дерева каждый раз, когда элемент вставлен или удален?