1. Using circular programs to eliminate multiple traversals of data
2. ‘Two functional programming techniques: continuations and circular programs’, Monash University, Department of Computer Science, TR 87/91, January 1987.
3. and , ‘Cons should not evaluate its arguments’, in Automata, Languages and Programming, Edinburgh University Press, 1976, pp. 257–284.
4. ‘A lazy evaluator’, 3rd ACM Symposium on Principles of Programming Languages, 1976, pp. 95–103.
5. Functional Programming: Application and Implementation, Prentice Hall, 1980.