Some improvements that would be helpful:
-
Motivate modules and functors in a more compelling way. The current examples show syntax and semantics but don't explain why the construct exists.
-
Explain how 'require' works in the general case, and how it translates into desugared code