## Applicative Functors and Fully Transparent Higher-Order Modules (1995)

### 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: | 109 - 5 self |

### BibTeX

@INPROCEEDINGS{Leroy95applicativefunctors,

author = {Xavier Leroy},

title = {Applicative Functors and Fully Transparent Higher-Order Modules},

booktitle = {},

year = {1995},

pages = {142--153},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present a variant of the Standard ML module system where parameterized abstract types (i.e. functors returning generative types) map provably equal arguments to compatible abstract types, instead of generating distinct types at each application as in Standard ML. This extension solves the full transparency problem (how to give syntactic signatures for higher-order functors that express exactly their propagation of type equations), and also provides better support for non-closed code fragments.

### Citations

1623 | The Definition of Standard ML
- Milner, Harper, et al.
- 1990
(Show Context)
Citation Context ...ype abstraction in terms of generativity of type declarations and say for instance that \a type is abstract because it is created each time its de- nition is evaluated". The Denition of Standard =-=ML [14, 8] formaliz-=-es this approach as a calculus over type stamps that denes when \new" types are generated and when \old" types are propagated. This approach is adequate for specifying a type-checker, but to... |

381 |
Types, abstraction and parametric polymorphism
- Reynolds
- 1983
(Show Context)
Citation Context ...d on a parallel with existential quantication in logic. Instead of operational intuitions about type generativity, this approach uses a precise semantic characterization: representation independence [=-=17, 15]-=-, to show that type abstraction is enforced. This abstract approach has since been extended to account for the main features of the Standard To appear in the proceedings of the 22nd symposium Principl... |

307 |
Abstract Types have Existential Type
- Mitchell, Plotkin
- 1988
(Show Context)
Citation Context ...h is adequate for specifying a type-checker, but too low-level and operational in nature to help understanding type abstraction and reason about programs using it. Independently, Mitchell and Plotkin =-=[16-=-] have proposed a more abstract, less operational account of type abstraction based on a parallel with existential quantication in logic. Instead of operational intuitions about type generativity, thi... |

274 | A type-theoretic approach to higher-order modules with sharing
- HARPER, LILLIBRIDGE
- 1994
(Show Context)
Citation Context ...les of Programming Languages, january 1995. ML module system: the \dot notation" as elimination construct for abstract types [3, 4] and the notion of type sharing and its propagation through func=-=tors [7, 10]. Unf-=-ortunately, some features described by operational frameworks remain unaccounted for in the abstract approach, such as structure sharing and the \fully transparent" behavior of higher-order funct... |

227 | Manifest types, modules, and separate compilation
- LEROY
- 1994
(Show Context)
Citation Context ...les of Programming Languages, january 1995. ML module system: the \dot notation" as elimination construct for abstract types [3, 4] and the notion of type sharing and its propagation through func=-=tors [7, 10]. Unf-=-ortunately, some features described by operational frameworks remain unaccounted for in the abstract approach, such as structure sharing and the \fully transparent" behavior of higher-order funct... |

142 | Typeful Programming
- Cardelli
- 1989
(Show Context)
Citation Context ... of the Standard To appear in the proceedings of the 22nd symposium Principles of Programming Languages, january 1995. ML module system: the \dot notation" as elimination construct for abstract t=-=ypes [3, 4]-=- and the notion of type sharing and its propagation through functors [7, 10]. Unfortunately, some features described by operational frameworks remain unaccounted for in the abstract approach, such as ... |

141 | Separate compilation for Standard ML
- Appel, MacQueen
- 1994
(Show Context)
Citation Context ...is syntactic in nature and therefore highly compatible with separate compilation [10], code fragments with free functor identiers could be supported better (see section 2.4 for an example). MacQueen [=-=13, 1]-=- claims that the problem with higher-order functors is serious enough to invalidate the abstract approach and justify the recourse to complicated stamp-based descriptions of higher-order functors and ... |

130 | Using dependent types to express modular structure
- MacQueen
- 1986
(Show Context)
Citation Context ...pe paths is to allow projections of type components from arbitrary structure expressions: then, m:t would be a valid type expression for any structure expression m whose result contains a t component =-=[12, 9]-=-. This extension adds considerable expressive power, but raises delicate issues. First, when are two type expressionssm:t and m 0 :t compatible? Clearly, we cannot check that m and m 0 reduce to the s... |

108 | On the type structure of Standard ML
- Harper, Mitchell
- 1993
(Show Context)
Citation Context ...pe paths is to allow projections of type components from arbitrary structure expressions: then, m:t would be a valid type expression for any structure expression m whose result contains a t component =-=[12, 9]-=-. This extension adds considerable expressive power, but raises delicate issues. First, when are two type expressionssm:t and m 0 :t compatible? Clearly, we cannot check that m and m 0 reduce to the s... |

60 | A semantics for higher-order functors - MacQueen, Tofte - 1994 |

56 | Abstract types and the dot notation
- Cardelli, Leroy
- 1990
(Show Context)
Citation Context ... of the Standard To appear in the proceedings of the 22nd symposium Principles of Programming Languages, january 1995. ML module system: the \dot notation" as elimination construct for abstract t=-=ypes [3, 4]-=- and the notion of type sharing and its propagation through functors [7, 10]. Unfortunately, some features described by operational frameworks remain unaccounted for in the abstract approach, such as ... |

34 |
On the equivalence of data representations
- Mitchell
- 1991
(Show Context)
Citation Context ...d on a parallel with existential quantication in logic. Instead of operational intuitions about type generativity, this approach uses a precise semantic characterization: representation independence [=-=17, 15]-=-, to show that type abstraction is enforced. This abstract approach has since been extended to account for the main features of the Standard To appear in the proceedings of the 22nd symposium Principl... |

25 |
A type discipline for program modules
- Harper, Milner, et al.
- 1987
(Show Context)
Citation Context ...ype abstraction in terms of generativity of type declarations and say for instance that \a type is abstract because it is created each time its de- nition is evaluated". The Denition of Standard =-=ML [14, 8] formaliz-=-es this approach as a calculus over type stamps that denes when \new" types are generated and when \old" types are propagated. This approach is adequate for specifying a type-checker, but to... |

19 | Higher-order functors with transparent signatures
- Biswas
- 1995
(Show Context)
Citation Context ...k Several semantics for fully transparent higher-order functors have been given,srst in type-theoretic frameworks based on strong sums [12, 9], then as extensions of SML's stampbased static semantics =-=[13, 2]-=-. Only MacQueen and Tofte's 11 formalism [13] handles the full SML module language; both the strong sums-based models [12, 9] and Biswas's static semantics based on higher-order variables [2] fail to ... |

15 | Persistence and Type Abstraction
- Cardelli, McQueen
- 1988
(Show Context)
Citation Context ...e bindings are crucial to implement type abstraction and representation hiding. In SML, they are provided by the abstype and datatype constructs. Type paths play the role of witnesses of opaque types =-=[5-=-]: although the denition of an opaque type is not available, two occurrences of a type path denoting this opaque type are recognized as compatible types. In other terms, syntactic equality between typ... |

4 |
The Alcool 90 report
- Rouaix
- 1992
(Show Context)
Citation Context ...erative semantics of functor application, and the disadvantage of requiring a rather complex stamp-based formalism. A notion of functors with applicative semantics appears in Rouaix's Alcool language =-=[18]-=-, which combines Haskellstyle dynamic overloading with a type abstraction mechanism. In the presence of dynamic overloading, applicative functors arise naturally as a generalization of ML's parameteri... |

2 |
Compilation séparée pour un langage de modules avec types génératifs
- Crégut
- 1994
(Show Context)
Citation Context ...esis to \a functor maps two structures that share (in SML's structure sharing sense) to two structures that share". In this paper, we only consider sharing between type components of structures. =-=(See [6-=-] for a treatment of structure sharing in functor signatures.) 3 A calculus with applicative functors In preparation for representation independence and expressiveness results, we now dene a module ca... |

2 |
A syntactic approach to type generativity and sharing (extended abstract
- Leroy
- 1994
(Show Context)
Citation Context ...r signatures.) 3 A calculus with applicative functors In preparation for representation independence and expressiveness results, we now dene a module calculus with applicative functors, derived from [=-=10, 11-=-]. 3.1 Syntax In the following grammar, v, t, and x are names (for value, type, and module components of structures, respectively), and v i , t i , and x i are identiers (for values, types, and module... |

1 | Abstract types and the dot not ation - Cardelli, Leroy - 1990 |

1 | Compilation s6par6e pour un langage de modules avec types g6n6ratifs - Cr6gut - 1994 |

1 | On the equivalence of data representat ions - Mitchell - 1991 |