作者: George Kuan , David MacQueen
DOI: 10.1007/978-3-642-16478-1_13
关键词:
摘要: SML/NJ and other Standard ML variants extend the module system with higher-order functors, elevating language to a full functional language. In this paper, we describe implementation of modules in SML/NJ, which is unique providing "true" static behavior. This based on three key ideas: internal variables (entity variables) for naming entities, factorization information both basic functors into signatures realizations, representing "effects" type-level mapping performed by functor using lambda calculus (the entity calculus). design conforms MacQueen-Tofte's re-elaboration semantics without having re-elaborate bodies at applications.