exercises 1.32 and 1.31, generalizations