ML modules are a powerful language mechanism for decomposing programs into reusable com-ponents. Unfortunately, they also have a reputation for being “complex ” and requiring fancy type theory that is mostly opaque to non-experts. While this reputation is certainly understandable, given the many non-standard methodologies that have been developed in the process of studying modules, we aim here to demonstrate that it is undeserved. To do so, we present a novel formalization of ML modules, which defines their semantics directly by a compositional “elaboration ” translation into plain System Fω (the higher-order polymorphic λ-calculus). To demonstrate the scalability of our “F-ing ” semantics, we use it to define a representative, higher-order...