## Manifest Types, Modules, and Separate Compilation (1994)

### Cached

### Download Links

- [pauillac.inria.fr]
- [gallium.inria.fr]
- [www-2.cs.cmu.edu]
- [www.cs.cmu.edu]
- [gallium.inria.fr]
- [pauillac.inria.fr]
- [cristal.inria.fr]
- DBLP

### Other Repositories/Bibliography

Citations: | 223 - 8 self |

### BibTeX

@MISC{Leroy94manifesttypes,,

author = {Xavier Leroy},

title = {Manifest Types, Modules, and Separate Compilation},

year = {1994}

}

### Years of Citing Articles

### OpenURL

### Abstract

This paper presents a variant of the SML module system that introduces a strict distinction between abstract types and manifest types (types whose definitions are part of the module specification), while retaining most of the expressive power of the SML module system. The resulting module system provides much better support for separate compila- tion.

### Citations

1562 | The Definition of Standard ML - Miller, Tofte, et al. - 1990 |

758 | On understanding types, data abstraction, and polymorphism
- Cardelli, Wegner
- 1985
(Show Context)
Citation Context ...that this is a small price to pay for the overall simplications resulting from this restriction. On the technical side, the main originality of this paper is the use of what is essentially weak sums [=-=19, 7]|albe-=-it with an unusual elimination construct: the \dot notation" [4, 5]|instead of the strong sums that have been used so far to give type-theoretic accounts of SML modules [15, 12, 13]. Unlike stron... |

358 |
Principal type-schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ... and E ` denable type, to assign types to expressions and to check the well-formedness of type expressions, respectively. (In the case of ML, the former is dened by Damas and Milner's type system [9] with the extra requirement that is a closed type scheme, and the latter checks that is a closed simple type and that all external types p:t in are valid.) The rules above make all type componen... |

292 |
Abstract types have existential types
- Mitchell, Plotkin
- 1985
(Show Context)
Citation Context ...that this is a small price to pay for the overall simplications resulting from this restriction. On the technical side, the main originality of this paper is the use of what is essentially weak sums [=-=19, 7]|albe-=-it with an unusual elimination construct: the \dot notation" [4, 5]|instead of the strong sums that have been used so far to give type-theoretic accounts of SML modules [15, 12, 13]. Unlike stron... |

267 | A type-theoretic approach to higher-order modules with sharing
- Harper, Lillibridge
- 1994
(Show Context)
Citation Context ... way, signatures become complete module specications with respect to typing, making separate compilation feasible while retaining the expressiveness of the SML module system. (Harper and Lillibridge [=-=10]-=- have investigated similar ideas independently.) The two components of this approach|manifest types and opaque signatures|have already been proposed as extensions to the SML module system: type abbrev... |

198 | Modules for Standard ML
- MacQueen
- 1984
(Show Context)
Citation Context ...h the dependencies \hard-wired" inside the units. Modern module systems go much farther in their attempts to accurately express the program structure. A well-known example is the module system of=-= SML [14-=-], which is actually a small typed language of its own, with modules (also called structures) as the base data structure, module specications (signatures) as types, functions from modules to modules (... |

161 | Reasoning about programs in continuation-passing style
- Sabry, Felleisen
- 1993
(Show Context)
Citation Context ...is not a path and x i occurs in M 0 . In this case, the applicationsm1(m2 ) is ill-typed; an intermediate binding of m2 to a module identier must be introduced. Felleisen and Sabry's A-normalization [=-=23]-=- can be used to introduce these bindings in a systematic way before typechecking. The most unusual rule is the rule for module access: E ` p : (sig S1 ; module x i : M ; S2 end) E ` p:x : Mfn isp:n j ... |

160 |
The essence of Algol
- Reynolds
- 1981
(Show Context)
Citation Context ...ce the module calculus makes few assumptions about it and should accommodate a variety of base languages. (We have experimented with two base languages: ML and a more Algol-like language derived from =-=[22].) Th-=-e base language can access values and types bound earlier in the same structure (v i and t i ). It can also refer to value and type components of other structures through the \dot notation " p:v ... |

147 |
Programming in Modula-2
- Wirth
- 1982
(Show Context)
Citation Context ... programmers; separate compilation makes large programs tractable by compilers. Several languages rely on a common mechanism to provide modules and separate compilation. A typical example is Modula-2 =-=[-=-27], where modules are identied with compilation units composed of an implementationsle (source code) and an interfacesle (specication). However, this identication is limiting. Since compilation units... |

142 | Operations on records
- Cardelli, Mitchell
- 1989
(Show Context)
Citation Context ...ctor parameter, S with type t = cannot be expanded before typing. In this context, the unrestricted with construct seems to require a type system similar to those for polymorphic extensible records [=-=6]-=-. A more reasonable alternative is to restrict with to situations where the left-hand side can be statically reduced to a sig ... end expression. 2.4 Sharing constraints for free! So far, we have seen... |

139 | Typeful Programming
- Cardelli
- 1991
(Show Context)
Citation Context ...g from this restriction. On the technical side, the main originality of this paper is the use of what is essentially weak sums [19, 7]|albeit with an unusual elimination construct: the \dot notation&q=-=uot; [4, 5]-=-|instead of the strong sums that have been used so far to give type-theoretic accounts of SML modules [15, 12, 13]. Unlike strong sums, weak sums provide direct support for type abstraction and make t... |

134 | Higher-order modules and the phase distinction - Harper, Mitchell, et al. - 1990 |

125 | Using dependent types to express modular structure
- MacQueen
- 1986
(Show Context)
Citation Context ...dules. Treating type specications as opaque, that is, making all exported types abstract, wouldsx the problem with separate compilation but drastically reduce the expressiveness of the module system [=-=15-=-]. 1.3 This work This paper proposes a way out of this dilemma: make type specications opaque (so that the users of a structure can only assume what is declared in its signature), but enrich signature... |

102 | On the type structure of Standard ML
- Harper, Mitchell
- 1993
(Show Context)
Citation Context ...entially weak sums [19, 7]|albeit with an unusual elimination construct: the \dot notation" [4, 5]|instead of the strong sums that have been used so far to give type-theoretic accounts of SML mod=-=ules [15, 12, 13]. Unl-=-ike strong sums, weak sums provide direct support for type abstraction and make the \phase distinction" [13] obvious. The well-known inadequacies of weak sums for modular programming [15] are her... |

102 | Bounded quantification is undecidable - Pierce - 1994 |

61 | Smartest recompilation
- Shao, Appel
- 1993
(Show Context)
Citation Context ...equirement can be alleviated by systematic use of functors, at the cost of extra declarations (sharing constraints) and late detection of inter-compilation unit type clashes. Recently, Shao and Appel =-=[24]-=- have proposed a more free-form separate compilation mechanism for SML, which infers the required constraints, but delays all type checks between compilation units to the linking phase, which is much ... |

58 | Structural subtyping and the notion of power type
- Cardelli
- 1988
(Show Context)
Citation Context ...d to ensure the well-formedness of type expressions in the presence of type constructors, as in full ML, or type operators, as in F! . Kinds also provide an elegant treatment of bounded quantication [=-=3-=-, 4]. Introducing kinds in the module calculus is straightforward: abstract type specications in signatures now have the form type t :: , where is a kind. The modied typing rules check that the imple... |

54 | Abstract types and the dot notation
- Cardelli, Xavier
- 1990
(Show Context)
Citation Context ...g from this restriction. On the technical side, the main originality of this paper is the use of what is essentially weak sums [19, 7]|albeit with an unusual elimination construct: the \dot notation&q=-=uot; [4, 5]-=-|instead of the strong sums that have been used so far to give type-theoretic accounts of SML modules [15, 12, 13]. Unlike strong sums, weak sums provide direct support for type abstraction and make t... |

34 | The ML Kit (Version 1
- Birkedal, Rothwell, et al.
- 1993
(Show Context)
Citation Context ...res. Previous attempts at programming in a fully functorized style, with all type equations explicit, have demonstrated a major increase in program size due to the extra sharing declarations required =-=[2-=-]. We expect this problem to be less acute in our approach, since manifest types provides better support for non-fully functorized code; moreover, one manifest type declaration (in the denition of the... |

34 |
On the equivalence of data representations
- Mitchell
- 1991
(Show Context)
Citation Context ...is module system supports the SML modular programming style in a satisfactory way. It provides a strong type abstraction mechanism, which guarantees interesting representation independence properties =-=[18]-=- and easily accounts for generative datatypes. More surprisingly, the manifest type mechanism subsumes large parts of the SML sharing constraint machinery, an essential part of the SML module system: ... |

34 | Extending ML type system with a sorted equational theory. Research Report 1766, Institut de Recherche en Informatique et en Automatique
- Remy
- 1992
(Show Context)
Citation Context ...gorithm still hold when equations between types are introduced to take into account manifest type declarations. This follows from Remy's general results on type inference modulo an equational theory [=-=21]-=-. 4 Expressiveness The aim of this section is to show that our calculus (with opaque signatures and propagation of type equalities through manifest types) is at least as expressive as the SML module s... |

30 | Principal signatures for higher-order program modules
- Tofte
- 1992
(Show Context)
Citation Context ... oset by the extra expressiveness brought by manifest types. The present paper also puts forward a new way to account for type sharing, distinct from the heavy graph-based formalism of the Denition [1=-=1, 17, 25]-=- and from Aponte's record-based module algebra [1]. Previous approaches to sharing focus on structure generativity and sharing between structures; as a consequence, they require stamps over structures... |

24 | A type discipline for program modules - Harper, Milner, et al. - 1987 |

13 | Extending record typing to type parametric modules with sharing
- Aponte
- 1993
(Show Context)
Citation Context ...s. The present paper also puts forward a new way to account for type sharing, distinct from the heavy graph-based formalism of the Denition [11, 17, 25] and from Aponte's record-based module algebra [=-=1]-=-. Previous approaches to sharing focus on structure generativity and sharing between structures; as a consequence, they require stamps over structures and consistency conditions between structures hav... |

2 |
Bounded quanti is undecidable
- Pierce
- 1992
(Show Context)
Citation Context ...ge [10],srst-class modules still make typechecking undecidable in the presence of manifest types, but for dierent reasons than for strong sums: what is undecidable is the subtyping relation, as in F [=-=2-=-0], and this is due to the combination of subtyping, manifest types and dependent function types at the same level. Stratication avoids this problem by allowing dierent combinations of these features ... |

1 |
Separate compilation in SML. Working note
- CrÃ©gut
- 1993
(Show Context)
Citation Context ...ler. A prototype batch compiler integrating the main ideas in this paper (type abbreviations in signatures and opaque interpretation of signatures) has been derived from SML/NJ 0.93 by Pierre Cregut [=-=8-=-]. The main dierence with the work presented here is that both opaque and transparent signatures are supported, via two distinct module binding constructs. Another implementation, based on the author'... |

1 |
Type abbreviations in signatures. Message sent to the sml mailing list
- Tofte
- 1992
(Show Context)
Citation Context ...of \after the fact" parameterization, reminiscent of SML's syntax for sharing constraints, makes it possible to write the signature only once and use it in both abstract and manifest contexts. (T=-=ofte [26-=-] has proposed a similar notation to express type abbreviations in signatures, though for dierent purposes.) The with construct is just a notational convenience: it can always be expanded before typin... |

1 | Separate compilation in SML. Working note - Cr6gut - 1993 |

1 | Extending ML type system with a sorted equational theory. Research report 1766 - R6my - 1981 |