|
|
|
|
|
by seanmcdirmid
4700 days ago
|
|
I've seen this, it basically allows us to generate execution trace trees, which is quite trivial in most languages must somehow hard in Haskell. I've studied a lot of mechanisms for debugging Haskell code, and some of the debugging mechanisms taken for granted in other languages can be clawed back. But at the end of the day, it is a struggle: the purity (or more accurately, laziness) that is supposed to help so much ends up hurting in at least one aspect. Perhaps why Haskell programs are so easy to reason about statically is because they are so hard to reason about dynamically :) |
|
Haskell has excellent static reasoning/debugging facilities therefore there is little pressure to make good debugging tools.
I believe purity should make debugging easier, not harder. Laziness should only make performance debugging harder, not correctness debugging.
There is much room for improvement in this space.