This is very sketchy at this point, but it should give a sense of our intended scope.
-## Side-effects and mutation ##
-
-1. What difference imperativity makes
-2. Side-effects in a purely functional setting, via monads
-3. [Phil/ling application]Semantics for DPL, using state monad
-4. Passing by reference
-5. [Phil/ling application] Fine and Pryor on "coordinated contents" (see, e.g., [Hyper-Evaluativity](http://www.jimpryor.net/research/papers/Hyper-Evaluativity.txt))
14. Curry-Howard isomorphism between simply-typed lambda and intuitionistic propositional logic<p>
15. The types of continuations; continuations as first-class values
0. [Phil/ling application] Partee on whether NPs should be uniformly interpreted as generalized quantifiers, or instead "lifted" when necessary. Lifting = a CPS transform.
1. Using CPS to handle abortive computations (think: presupposition failure, expressives)
-2. Using CPS to do other handy things, e.g., coroutines
-3. Making evaluation order explicit with continuations (could also be done earlier, but I think will be helpful to do after we've encountered mutation)
+2. Using CPS to do other handy things, e.g., coroutines (cooperative threading)
+3. Making evaluation order explicit with continuations
4. Delimited (quantifier scope) vs undelimited (expressives, presupposition) continuations
5. [Phil/ling application] [Barker/Shan on donkey anaphora](http://dx.doi.org/10.3765/sp.1.1)
6. The continuation monad
1. Basics of parallel programming: semaphores/mutexes
2. Contrasting "preemptive" parallelism to "cooperative" parallelism (coroutines, above)
-3. Linear logic
+3. Linear logic, "logical resource management"
4. [Phil/ling application] Barker on free choice, imperatives