Traversals with Class
Bastiaan Heeren
This paper describes a set of combinators for specifying traversal strategies. These combinators are based on Haskell 98 type classes (without extensions) for iterating over sequences and navigating in trees. Since traversal strategies are commonly found in procedures for solving stepwise exercises in tutoring systems, we show how the traversal combinators can be used in a strategy language. Since feedback is generated automatically from a rewriting strategy, we need to have intermediate terms and allow non-determinism in our strategies.
In Een Lawine van Ontwortelde Bomen: Liber Amicorum voor Doaitse Swierstra, pages 62-75.