Updated through Exercise 2.19 and Section 2.10.