Exercise 34, HtDP.