Seeing as Haskell is apparently such a popular language these days, I don't suppose a working debugger would be too much to ask for, would it?
I agree.
In case you're wondering, yes I have already tried using Hat and Buddha. But I'm trying to debug a real application, not a toy one, and neither Hat nor Buddha support enough of Haskell.
Well, Hat only promises Haskell'98, and it actually delivers somewhat more. It is too much to ask for application developers to stick to agreed standards? :-) In fact, I often use Hat to debug real applications, such as the nhc98 compiler, HaXml library code, cpphs, etc.. Where an application demands more of Hat than it currently delivers, we try to extend Hat to cope. We just need two simple things: user feedback, and resources. :-)
There's a hell of a lot of languages out there that _do_ support decent stack traces when an exception is thrown.
As I'm sure you know, getting a meaningful stack trace from a lazy program is rather difficult. The actual stack at the time of failure is next to useless. You really want to see a reconstruction of a strictified evaluation order. That's why HsDebug uses optimistic evaluation, and why Hat builds redex trails.
What's the point of using a high-level functional language if it means you're stuck with poor library support and/or stone-age tools?
If companies are willing to invest in development, they will get the tools they want. Regards, Malcolm