Haskell requires a garbage collector, since garbage collection is the highest-performance automatic dynamic memory manager.
However...
Although a garbage collector is necessary, we might try to find some special cases where the compiler can use a cheaper memory management scheme than garbage collection.