The declarative debugger for the functional part of the language is implemented by modifying the transformation so that functions return a representation of the computation performed as well as the final result of evaluation. The debugger evaluates a functional expression and if the result is wrong the representation of the computation is used to query the user and find what function definition is buggy. For more details, see the paper.
ftp turiel.cs.mu.oz.au (128.250.1.10) cd pub get nuedebug.tar.Z