Module 3 Readings: Functors and Natural Transformations
Required
-
Textbook — ChapterEmily Riehl — Complete §1.3 and §1.4Focus on: Example 1.3.2 (functors between posets), Example 1.3.4 (forgetful functors), the definition of natural transformation in §1.4, and Examples 1.4.3–1.4.5. Work through the proof that natural transformations compose to form a category.
-
Textbook — SectionFong and Spivak — Read §3.3Focus on: how functors between database schemas correspond to data migration operations. This directly connects Module 3 to Module 7.
Recommended
-
VideoBartosz Milewski — 45 min — Strong programmer-native intuition for functors as "containers" and as structure-preserving maps
-
Paper — SectionBronstein et al. — 2021 — Read §2.2 only — How equivariance (the condition that F(g·x) = g·F(x)) is a naturality condition in disguise
-
ClassicEilenberg and Mac Lane wrote the first paper on category theory in 1945 motivated by natural transformations — the "naturality" in algebraic topology. This short expository article gives historical context.
Reading Notes
The naturality square is the hardest concept in this module for most students. To build fluency:
- For each natural transformation example in Riehl §1.4, draw the full naturality square explicitly with all four vertices and four arrows labeled.
- For each natural transformation, identify: What are F and G? What is C? What is D? What is η_c for a specific choice of c?
- Find one example from your own CS background (a polymorphic function, an API adapter, a data transformation) and check whether it is a natural transformation. Draw its naturality square.