I'm curious as to why Haskell implementations use a GC.
I can't think of a case where GC would be necessary in a pure language. Is it just an optimization to reduce copying, or is it actually necessary?
I'm looking for example code that would leak if a GC wasn't present.