TY - JOUR
T1 - Mixin modules
AU - Duggan, Dominic
AU - Sourelis, Constantinos
PY - 1996/6
Y1 - 1996/6
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=17144364689&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=17144364689&partnerID=8YFLogxK
U2 - 10.1145/232629.232654
DO - 10.1145/232629.232654
M3 - Article
AN - SCOPUS:17144364689
SN - 0362-1340
VL - 31
SP - 262
EP - 273
JO - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
JF - SIGPLAN Notices (ACM Special Interest Group on Programming Languages)
IS - 6
ER -