Recursive modules for programming

  • Authors:
  • Keiko Nakata;Jacques Garrigue

  • Affiliations:
  • Kyoto University;Nagoya University

  • Venue:
  • Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

TheML module system is useful for building large-scale programs. The programmer can factor programs into nested and parameterized modules, and can control abstraction with signatures. Yet ML prohibits recursion between modules. As a result of this constraint, the programmer may have to consolidate conceptually separate components into a single module, intruding on modular programming. Introducing recursive modules is a natural way out of this predicament. Existing proposals, however, vary in expressiveness and verbosity. In this paper, we propose a type system for recursive modules, which can infer their signatures. Opaque signatures can also be given explicitly, to provide type abstraction either inside or outside the recursion. The type system is decidable, and is sound for a call-by-value semantics. We also present a solution to the expression problem, in support of our design choices.