Notice: h, p have same value (1), but f (h, p) and f (h, h) differ
+Fine and Pryor on "coordinated contents" (see, e.g., [Hyper-Evaluativity](http://www.jimpryor.net/research/papers/Hyper-Evaluativity.txt))
+
+
##Five grades of mutation involvement##
-- FIXME --
We use the `None`/`Some factorial` option type here just as a way to ensure that the contents of `fact_cell` are of the same type both at the start and the end of the block.
+##Offsite Reading##
+
+* [[!wikipedia Declarative programming]]
+* [[!wikipedia Functional programming]]
+* [[!wikipedia Purely functional]]
+* [[!wikipedia Side effect (computer science) desc="Side effects"]]
+* [[!wikipedia Referential transparency (computer science)]]
+* [[!wikipedia Imperative programming]]
+* [[!wikipedia Reference (computer science) desc="References"]]
+* [[!wikipedia Pointer (computing) desc="Pointers"]]
+* [Pointers in OCaml](http://caml.inria.fr/resources/doc/guides/pointers.html)
+
<!--
-Fine and Pryor on "coordinated contents" (see, e.g., [Hyper-Evaluativity](http://www.jimpryor.net/research/papers/Hyper-Evaluativity.txt))
+# General issues about variables and scope in programming languages #
+
+* [[!wikipedia Variable (programming) desc="Variables"]]
+* [[!wikipedia Free variables and bound variables]]
+* [[!wikipedia Variable shadowing]]
+* [[!wikipedia Name binding]]
+* [[!wikipedia Name resolution]]
+* [[!wikipedia Parameter (computer science) desc="Function parameters"]]
+* [[!wikipedia Scope (programming) desc="Variable scope"]]
+* [[!wikipedia Closure (computer science) desc="Closures"]]
+
-->