Contributed Papers

Programming Languages and Systems — ESOP '94

Volume 788 of the series Lecture Notes in Computer Science pp 409-423


A semantics for higher-order functors

  • David B. MacQueenAffiliated withAT&T Bell Labs
  • , Mads TofteAffiliated withDept. of Computer Science, Copenhagen University


Standard ML has a module system that allows one to define parametric modules, called functors. Functors are “first-order,” meaning that functors themselves cannot be passed as parameters or returned as results of functor applications. This paper presents a semantics for a higher-order module system which generalizes the module system of Standard ML. The higher-order functors described here are implemented in the current version of Standard ML of New Jersey and have proved useful in programming practice.