+**Don't try to read this yet!!! Many substantial edits are still in process.
+Will be ready soon.**
+
+**Caveats**: I really don't know much category theory. Just enough to put this
+together. Also, this really is "put together." I haven't yet found an
+authoritative source (that's accessible to a category theory beginner like
+myself) that discusses the correspondence between the category-theoretic and
+functional programming uses of these notions in enough detail to be sure that
+none of the pieces here is misguided. In particular, it wasn't completely
+obvious how to map the polymorphism on the programming theory side into the
+category theory. And I'm bothered by the fact that our `<=<` operation is only
+partly defined on our domain of natural transformations. But these do seem to
+me to be the reasonable way to put the pieces together. We very much welcome
+feedback from anyone who understands these issues better, and will make
+corrections.
+
+
+Monoids
+-------
+A **monoid** is a structure `(S, *, z)` consisting of an associative binary operation `*` over some set `S`, which is closed under `*`, and which contains an identity element `z` for `*`. That is: