1. Look at `mk-insertion-sort` in Section 2.9.2, which starts on page 138. (a) Calling `(mk-insertion-sort >)` returns a function. What does the returned function do? (b) Given that the internal function `sort` (defined with `letrec` and `lambda`) takes only the list `xs` as argument, how does `sort` know what order to sort in? You are ready to start problem Q. 2. Read Section 2.12.3, which starts on page 155. What is the difference between DefineOldGlobal and DefineNewGlobal? You are ready to start problem 44. 3. Set aside an hour to study the conjunctive-normal-form solver in Section 2.10.1, which starts on page 141. This will help you a lot in solving Exercise 21. (a) Look at code chunk 145b on page 145. In English, describe how `(one-solution f)` produces the answer `((x #t) (y #f))`. Walk through each function call, what the input to the function is, how the input is processed, and what the output of the function call is. (b) Look at code chunk 145d. As you did with 145b, describe how `(one-solution '((x) ((not x))))` produces the answer `no-solution`. You are ready to start Exercise 21. 4. Look at the first paragraph of Exercise 21 on page 213. Each bullet gives one possible rule for creating a formula. For each bullet, write one example formula (using the $\mu$Scheme notation) that is created according to the rule for that bullet---four examples in total. * symbol: * not: * and: * or: You are ready to start problems F and T.