What is the type of each of these steps? Well, it will be a function
from the result of the previous step (a list) to a new list: it will
be a function of type `char list -> char list`. We'll call each step
-(or group of steps) a **continuation** of the recipe. So in this
+(or group of steps) a **continuation** of the previous steps. So in this
context, a continuation is a function of type `char list -> char
list`. For instance, the continuation corresponding to the portion of
the recipe below the horizontal line is the function `fun (tail : char
the execution of `tz` above. There will once again be one initial and
four recursive calls to `tc`, and `zipped` will take on the values
`"bSd"`, `"Sd"`, `"d"`, and `""` (and, once again, on the final call,
-the first `match` clause will fire, so the the variable `zipper` will
+the first `match` clause will fire, so the the variable `zipped` will
not be instantiated).
I have not called the functional argument `unzipped`, although that is
The reason the task is well-suited to the list zipper is in part
because the list monad has an intimate connection with continuations.
-The following section explores this connection. We'll return to the
-list task after talking about generalized quantifiers below.
+We'll explore this next.