Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Applicative functors and fully transparent higher-order modules
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static interpretation of modules
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Transparent modules with fully syntatic signatures
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
A type-theoretic interpretation of standard ML
Proof, language, and interaction
The Definition of Standard ML
A type system for higher-order modules
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An ML-Like Module System for the Synchronous Language SIGNAL
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Journal of Functional Programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Recursive modules for programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A type system for recursive modules
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
The ML module system facilitates modular programming and data abstraction using nested modules, higher-order functors, and abstract types. However, it is difficult to adapt to various base languages due to specific features required for supporting abstract types across module boundaries and the assumption that the base language consists of terms and types. This paper proposes a module system that is highly independent of the base language while providing nested modules and higher-order functors. In order to maximize the independence between the module system and the base language, we assume that the base language consists of abstract declarations and specifications rather than terms and types. Furthermore, we allow references to components of modules only via module paths. This paper discusses the current design of our module system building on these assumptions and outlines future work.