MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Constraint-based type inference for guarded algebraic data types (2005) [20 citations — 2 self]

Download:
Download as a PDF | Download as a PS
by Vincent Simonet, Francois Pottier
http://cristal.inria.fr/~simonet/publis/simonet-pottier-hmg.ps.gz
Add To MetaCart

Abstract:

Guarded algebraic data types, which subsume the concepts known in the literature as indexed types, guarded recursive datatype constructors, and phantom types, and are closely related to inductive types, have the distinguishing feature that, when typechecking a function defined by cases, every branch must be checked under di#erent typing assumptions. This mechanism allows exploiting the presence of dynamic tests in the code to produce extra static type information. We propose an extension of the constraint-based type system HM(X) with pattern matching, guarded algebraic data types, and polymorphic recursion. After establishing a type safety theorem, we show that, up to a few mandatory type annotations, type inference may be reduced to constraint solving. We devote particular attention to keeping the amount of user-supplied type information to a minimum and to ensuring that the generated constraints are e#ciently tractable. To the best of our knowledge, this is the first generic and comprehensive account of type inference in the presence of guarded algebraic data types.

Citations

845 A theory of type polymorphism in programming – Milner - 1978
782 A machine-oriented logic based on the resolution principle – Robinson - 1965
426 A syntactic approach to type soundness – Wright, Felleisen - 1994
290 How to make ad-hoc polymorphism less ad hoc – Wadler, Blott - 1989
239 Dependent Types in Practical Programming – Xi, Pfenning - 1999
226 Unification Revisited – Lassez, Maher, et al. - 1988
174 Solving equations in abstract algebras: a rule-based survey of unification – Jouannaud, Kirchner - 1991
136 Type inference with polymorphic recursion – Henglein - 1993
133 Refinement types for ML – Freeman, Pfenning - 1991
132 Inductive definitions in the system Coq: Rules and properties – Paulin-Mohring - 1993
131 Information flow inference for ML – Pottier, Simonet - 2002
121 Local type inference – Pierce, Turner - 1998
120 Intensional polymorphism in type-erasure semantics – Crary, Weirich, et al. - 1998
118 The principal type-scheme of an object in combinatory logic – Hindley - 1969
94 Putting type annotations to work – Odersky, Laufer - 1996
83 Guarded Recursive Datatype Constructors – Xi, Chen, et al. - 2003
71 Subtyping constrained types – Trifonov, Smith - 1996
70 Type inference with constrained types. Theory and Practice of Object Systems – Odersky, Sulzmann, et al. - 1999
62 First-class phantom types – Cheney, Hinze - 2003
55 Polymorphic type inference and abstract data types – Laufer, Odersky - 1994
43 Mostly-Static Decentralized Information Flow Control – Myers - 1999
41 Une Théorie des Constructions Inductives – Werner - 1994
33 Run-time principals in information-flow type systems – Tse, Zdancewic - 2004
31 Indexed types – Zenger - 1997
30 The Objective Caml system – Leroy - 2004
30 Functional Unparsing – Danvy - 1998
27 A general framework for Hindley/Milner type systems with constraints – Sulzmann - 2000
26 Type-safe cast: Functional pearl – Weirich - 2000
25 Structural subtyping of non-recursive types is decidable – Kuncak, Rinard - 2003
24 An improved lower bound for the elementary theories of trees – Vorobyov - 1996
23 Indizierte Typen – Zenger - 1998
22 Dead code elimination through dependent types – Xi - 1999
22 Dynamic security labels and noninterference – Zheng, Myers - 2004
15 The Flow Caml System: documentation and user’s manual – Simonet - 2003
14 Hindley/Milner style type systems in constraint form – Sulzmann, Muller, et al. - 1999
13 From Hindley-Milner types to first-class structures – Jones - 1995
13 Polymorphic Typed Defunctionalization – Pottier, Gauthier - 2004
11 Type inference with structural subtyping: a faithful formalization of an efficient constraint solver – Simonet - 2003
10 Résolution d’équations dans des langages d’ordre – Huet - 1976
10 Applied type system – Xi - 2004
9 A semi-syntactic soundness proof for HM(X – Pottier - 2001
8 An extension of HM(X) with bounded existential and universal data-types – Simonet - 2003
8 Dependently typed pattern matching – Xi - 2003
4 Programming objects with ML-ART: An extension to ML with abstract and record types – emy, D - 1994
1 Phantom types. Manuscript. URL: http://www.informatik.uni-bonn.de/ ~ralf/publications/Phantom.ps.gz – Cheney, Hinze - 2003
1 Dependent ML. URL: http://www.cs.bu.edu/ ~hwxi/DML/DML.html – Xi
1 Guarded recursive datatype constructors. URL: http://www.cs.bu. edu/fac/hwxi/GRecTypecon/PAPER/main.pdf – Xi, Chen, et al. - 2002
1 Polymorphic type inference and abstract data types – aufer, K, et al. - 1994
1 The essence of ML type inference. Draft manuscript – Pottier, emy, et al. - 2003
1 Month Year. Constraint-Based Type Inference for Guarded Algebraic Data Types Simonet, V. 2003a. An extension of HM(X) with bounded existential and universal data-types – TBD