Conversation

There's an excellent chapter about the design of module systems in Benjamin Pierce's “Advanced Topics in Types and Programming”. The design and history of Standard ML's modules are also covered in ”The History of Standard ML”:
1
1
There's been lots more work in module systems after SML though, regarding mixins, mutual recursion, combining the ideas with object oriented programming, etc. The design space can be a bit bewildering, and the nomenclature intimidating.
1
Yeah, you can kind of think of these as 'fancy versions' of the modules you are normally familiar with in most PLs. You can give them types, and parameterize them, etc. They also can be extended to support typeclass style ad-hoc polymorphism.
1