В Haskell есть функция идентификации, которая возвращает входные данные без изменений. Определение простое:
id :: a -> a
id x = x
Итак, для удовольствия, это должно вывести 8:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
Через несколько секунд (и около 2 ГБ памяти согласно диспетчеру задач) компиляция завершится ошибкой ghc: out of memory. Точно так же говорит переводчик ghci: out of memory.
Поскольку idэто довольно простая функция, я бы не ожидал, что это будет нагрузка на память во время выполнения или компиляции. Для чего используется вся память?
ids. В VIM, с курсором на определениеf, сделайте следующее::s/id id/id . id ./g.