Avoiding signature avoidance in ML modules with zippers
summary
ZipML presents a path-based type system that prevents signature avoidance by adding floating fields—hidden signature fields represented as zippers—and four concrete simplification rules plus an algorithm that implements them. It elaborates modules into Mω (then to Fω) to prove soundness, supports early and lazy strengthening and lazy inlining to avoid duplication, and garbage-collects or exposes remaining floats to improve errors. Designed to retrofit OCaml, the prototype model preserves user-written types and aims to eliminate silent over-abstraction without changing runtime.
AI-written summary · about
chapters (12)
- 0:00ML modules and zippers intro
- 1:25Core ML module concepts
- 3:30OCaml spec challenges
- 5:41Signature avoidance problem
- 7:52Zippers solve signature avoidance
- 11:02Zipper simplification and types
- 12:48Formal properties of ZML
- 14:17ZML contributions summary
- 16:24Future work and closing
- 16:44Q&A on error messages
- 17:47Q&A on zipper trade-offs
- 19:11Q&A on type hiding
