Abstract:
Mixin modules are proposed as a new construct for module languages, allowing recursive definitions to span module boundaries. Mixin modules are proposed specifically for the Standard ML language. Several applications are described, including the resolution of cycles in module import dependency graphs, as well as functionality related to Haskell type classes and CLOS generic functions, though without any complications to the core language semantics. Mixin modules require no changes to the core ML type system, and only a very minor change to its run-time semantics. A type system and reduction semantics are provided, and the former is verified to be sound relative to the latter. 1
Citations
| 243 | Inheritance is not subtyping – Cook, Hill, et al. - 1990 |
| 215 | Report on the Programming Language Haskell, A Non-strict, Purely Functional Language – Hudak, Jones, et al. - 1992 |
| 130 | A type-based compiler for Standard ML – Shao, Appel - 1995 |
| 106 | Sound polymorphic type inference for objects – Eifrig, Smith, et al. - 1995 |
| 54 | An experimental applicative language – Hope - 1980 |
| 14 | Kinded Parametric Overloading – Duggan, Ophel - 1994 |
| 11 | Design considerations for a functional programming language. The software revolution – Burstall - 1977 |
| 11 | Polymorphic Methods With Self Types for ML-like Languages – Duggan - 1995 |
| 10 | Type-checking multi-parameter type classes – Duggan, Ophel - 2002 |

