working through the exercises in The Reasoned Schemer