Haskell doesn\'t feature explicit memory management, and all objects are passed by value, so there\'s no obvious reference counting or garbage collection either. How does a Hask
The only things GHC puts on the stack are evaluation contexts. Anything allocated with a let/where binding, and all data constructors and functions, are stored in the heap. Lazy evaluation makes everything you know about execution strategies in strict languages irrelevant.