Modularity is generally accepted as an important goal in good system design. Over the years, many programming languages have attempted to provide constructs to support modular program structure. The module system of Standard ML is one of the more ambitious attempts in this direction, and I will lay out some of the principles that underly its design, evaluate its success, and consider directions of potential further development. I will take into account alternative approaches explored in other (statically typed) languages (e.g. Scala) and recent research designs (e.g. MixML).
David MacQueen has a PhD in Mathematical Logic from MIT. Since the mid-1970s he has been working on the design, implementation, and formal description of functional languages, and their type and module systems. He is a co-designer of the Hope and the Standard ML languages, and a principal developer of the Standard ML of New Jersey (SML/NJ) compiler. He has worked at the University of Edinburgh and Bell Laboratories, and is currently a Professor at the University of Chicago. He is a Fellow of the ACM.