Saying that Erlang lost in its home turf would be a wild extrapolation of what I wrote. I don't really think there is a clear winner, but rather a set of trade-offs you will have to make.
Memory leaks are notorious mostly due to leaks in lazy code looking very innocent when coming from strict languages. After you get comfortable with laziness the same code (usually) stands out very clearly. And even when it doesn't, these leaks aren't very subtle. GHC has a good profiler for memory usage, so tracking them down is mostly trivial and fixing them once you know what's wrong is not very hard.
loop = forever x and loop = do {x; loop} had different laziness semantics in the Process monad. The former leaked, the latter did not.
I wrote all of the code in about 1.5 months, but spent the next 2-3 months fighting with memory leaks. In typical batch-processing code this is hardly a problem since a small leak goes away once the program terminates. In a long-running daemon-process, this is not as easy.
It won't point and scream HERE!, but it will give you enough information that you can use to narrow down where the leak happens to be.
Author chose Haskell cause of static type but most of his subsequence posts are Erlang. I'd say Erlang won him ha.
1. The author gives the impression that there's no big deal to fixing memory leaks in Haskell. I thought they were supposed to be its Achilles' heel.
2. Erlang lost on its home turf!