Ковыряюсь со типами/структурами данных на haskell'e. Вот предположим я описал некий рекурсивный тип данных:
## Код:
```
data Lst a = Node a (Lst a) | End
```


Вопрос: как это будет реализовано? В виде односвязного списка? В виде некой непрерывной области памяти (аля массив)? Или как-то ещё? Как это можно контролировать?