Learn More
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(More)
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(More)
We outline two heuristics for improving the localisation of bugs in a program. This is done by comparing computations of the same program with different input. At least one of these computations must produce a correct result, while exactly one must exhibit some erroneous behavior. First, reductions that are thought highly likely to be correct are eliminated(More)
Assertions test expected properties of run-time values without dissrupting the normal working of a program. So in a lazy functional language assertions should be lazy — not forcing evaluation, but only examining what is evaluated by other parts of the program. We describe two different ways of embedding lazy assertions in Haskell, one sequential and the(More)
Correction of Functional Programs . . . . . . . . . . . . . . . . . . . . . . . . . . 7<lb>M. Alpuente (U.P. Valencia), D. Ballis (U. Udine), S. Escobar (U.P.<lb>Valencia), M. Falaschi (U. Udine), and S. Lucas (U.P. Valencia) Runtime Verification of Concurrent Haskell (work in progress) . . . . . . . . . . 21<lb>V. Stolz (RWTH Aachen) and F. Huch (CAU Kiel)(More)
Assertions test expected properties of run-time values without disrupting the normal computation of a program. We present a library for enriching Haskell programs with assertions. Expected properties can be specified in a parser-combinator like language. The assertions are lazy: they do not force evaluation but only examine what is evaluated by the program.(More)
Deforestation optimises a functional program by transforming it into another one that does not create certain intermediate data structures. Short cut deforestation is a deforestation method which is based on a single, local transformation rule. In return, short cut deforestation expects both producer and consumer of the intermediate structure in a certain(More)
If you believe this document infringes copyright then please contact the KAR admin team with the take-down information provided at http://kar.kent.ac.uk/contact.html Citation for published version Claessen, Koen and Runciman, Colin and Chitil, Olaf and Hughes, John and Wallace, Malcolm (2003) Testing and Tracing Lazy Functional Programs using QuickCheck and(More)