Если вы не можете изменить значение переменной в Haskell, как вы создаете структуры данных?

Согласно названию

У меня есть следующий код, который создает двоичное дерево поиска, но если я хочу, чтобы оно создавалось и изменялось динамически с пользовательским вводом, как бы мне это сделать, если я не могу изменить значение переменной в haskell?!?

find :: (Ord a) => Node a -> a -> Bool
find (Node val left right) s
    | s == val      = True
    | s < val       = find left s
    | s > val       = find right s

find Empty s = False

data Node a = Node a (Node a) (Node a)
              | Empty

myTree = Node "m"   (Node "a" Empty Empty)
                    (Node "z" Empty Empty)

Заранее спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос