Haskell has an identity function which returns the input unchanged. The definition is simple:
id :: a -> a
id x = x
So for fun, this should output 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
After a few seconds (and about 2 gb of memory according to Task Manager), compilation fails with ghc: out of memory
. Similarly, the interpreter says ghci: out of memory
.
Since id
is a pretty simple function, I wouldn't expect it to be a memory burden at run time or compile time. What is all the memory being used for?