## The "pure" or untyped lambda calculus ##
1. Beta reduction
-2. Subtitution; using alpha-conversion and other strategies
+2. Substitution; using alpha-conversion and other strategies
3. Conversion versus Reduction
4. Eta reduction and "extensionality"
-5. Different evaluation strategies
+5. Different evaluation strategies (call by name, call by value, etc.)
6. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s)
7. Encoding pairs (and triples and ...)
13. Representing lists as folds
14. Typical higher-order functions: map, filter, fold
-15. Recursion exploiting the fold-like representation of numbers and lists
+15. Recursion exploiting the fold-like representation of numbers and lists (deforestation, zippers)
16. General recursion using omega
17. The Y combinator(s); more on evaluation strategies
16. [Phil/ling application] Partee on whether NPs should be uniformly interpreted as generalized quantifiers, or instead "lifted" when necessary. Lifting = a CPS transform.
17. [Phil/ling application] Expletives
-18. Dependent types
+18. Some references:
+ * de Groote on the lambda-mu calculus in linguistics
+ * on donkey anaphora and continuations
+ * Wadler on symmetric sequent calculi
+
+19. Dependent types
## Side-effects and mutation ##
4. The basis of monads in category theory
5. Other interesting monads: reader monad, continuation monad
-6. [Phil/ling application] Monsters and context-shifting, e.g. Gillies/von Fintel on "ifs"
-7. Montague / Yoad Winter? (just have this written down in my notes, I assume Chris will remember the reference)
+6. [Phil/ling application] Monsters and context-shifting, e.g. Gillies/von Fintel on "ifs" [not sure which paper]
+7. Montague / Ben-avi and Winter, [A modular approach to intensionality](http://citeseerx.ist.psu.edu/viewdocsummary?doi=10.1.1.73.6927)
8. Passing by reference
-9. [Phil/ling application] Fine and Pryor or "coordinated contents"
-
+9. [Phil/ling application] Fine and Pryor on "coordinated contents" (see, e.g., [Hyper-Evaluativity](http://www.jimpryor.net/research/papers/Hyper-Evaluativity.txt)
## Continuations (continued) ##
-1. Using CPS to handle abortive computations
+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)
-4. Delimited continuations
+4. Delimited (quantifier scope) vs undelimited (expressives, presupposition) continuations
5. [Phil/ling application] Barker/Shan on donkey anaphora
1. Basics of parallel programming: semaphores/mutexes
2. Contrasting "preemptive" parallelism to "cooperative" parallelism (coroutines, above)
3. Linear logic
-4. [Phil/ling application] Barker on free choice
+4. [Phil/ling application] Barker on free choice, imperatives