ML-Style Modules: Abstraction and the Phase Distinction
After seven chapters of linear types, regions, assembly proofs, and logical relations, Harper and Pierce finally write about something I use every week. Chapter 8 is the ML module system, and the first half is the part that still beats Java packages and Go files: structures, signatures, abstract types, and a hard rule called the phase distinction.