Work in progress on Exercise 3.29