MixML swMATH ID: 22612 Software Authors: Description: MixML is a complete redesign of the ML module language: ML modules provide hierarchical namespace management, as well as fine-grained control over the propagation of type information, but they do not allow modules to be broken up into mutually recursive, separately compilable components. Mixin modules facilitate recursive linking of separately compiled components, but they are not hierarchically composable and typically do not support type abstraction. We synthesize the complementary advantages of these two mechanisms in a novel module system design we call MixML. A MixML module is like an ML structure in which some of the components are specified but not defined. In other words, it unifies the ML structure and signature languages into one. MixML seamlessly integrates hierarchical composition, translucent ML-style data abstraction, and mixin-style recursive linking. Moreover, the design of MixML is clean and minimalist; it emphasizes how all the salient, semantically interesting features of the ML module system (and several proposed extensions to it) can be understood simply as stylized uses of a small set of orthogonal underlying constructs, with mixin composition playing a central role. We provide a declarative type system for MixML, including two important extensions: higher-order modules, and modules as first-class values. We also present a sound and complete, three-pass type checking algorithm for this system. The operational semantics of MixML is defined by an elaboration translation into an internal core language called LTG – namely, a polymorphic lambda calculus with single-assignment references and recursive type generativity – which employs a linear type and kind system to track definedness of term and type imports. Homepage: https://people.mpi-sws.org/~rossberg/mixml/ Related Software: 1ML; ML; Automath; Tribe; HMap; Dotty; GitHub; Scala; Backpack; Haskell; OCaml Cited in: 6 Publications Standard Articles 1 Publication describing the Software, including 1 Publication in zbMATH Year Mixin’ up the ML module system. Zbl 1323.68069Dreyer, Derek; Rossberg, Andreas 2008 all top 5 Cited by 12 Authors 3 Rossberg, Andreas 2 Dreyer, Derek R. 1 Amin, Nada 1 Garrigue, Jacques 1 Grütter, Samuel 1 Kilpatrick, Scott 1 Marlow, Simon 1 Nakata, Keiko 1 Odersky, Martin 1 Peyton Jones, Simon L. 1 Rompf, Tiark 1 Stucki, Sandro Cited in 2 Serials 1 Journal of Functional Programming 1 Higher-Order and Symbolic Computation Cited in 2 Fields 6 Computer science (68-XX) 2 Mathematical logic and foundations (03-XX) Citations by Year