I\'m interested in what tools and methods are used for diagnosing flaws in large scale functional programs. What tools are useful? My current understanding is that \'printf\'
A couple of years ago when I did this I had to use a combination of printf debugging and QuickCheck. These days I would also use the ghci built-in debugger.
The biggest headache was actually laziness causing space-time leaks. There still doesn't seem to be a good answer to these: just do lots of profiling and keep trying to figure it out.