Different tracing systems for Haskell give different views of a
program at work. In practice, several views are complementary
and can productively be used together. Until now each system has
generated its own trace, containing only the information needed for
its particular view. Here we present the design of a trace that can
serve several views. The trace is generated and written to file as
the computation proceeds. We have implemented both the generation
of the trace and several different viewers.
Postscript (106 KB)
In this paper we compare three systems for tracing and debugging
Haskell programs: Freja, Hat and Hood. We evaluate their usefulness in
practice by applying them to a number of moderately complex programs
in which errors had deliberately been introduced. We identify the
strengths and weaknesses of each system and then form ideas on how
the systems can be improved further.
Postscript (84 KB)