## Type inference with constrained types (1997)

### Cached

### Download Links

- [www.cs.yale.edu]
- [eprints.kfupm.edu.sa]
- [lampwww.epfl.ch]
- [ftp.ira.uka.de]
- [diwww.epfl.ch]
- [ftp.cs.yale.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Fourth International Workshop on Foundations of Object-Oriented Programming (FOOL) |

Citations: | 49 - 5 self |

### BibTeX

@INPROCEEDINGS{Odersky97typeinference,

author = {Martin Odersky and Martin Sulzmann and Martin Wehr},

title = {Type inference with constrained types},

booktitle = {Fourth International Workshop on Foundations of Object-Oriented Programming (FOOL)},

year = {1997},

publisher = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present a general framework HM(X) for type systems with constraints. The framework stays in the tradition of the Hindley/Milner type system. Its type system instances are sound under a standard untyped compositional semantics. We can give a generic type inference algorithm for HM(X) so that, under sufficient conditions on X, type inference will always compute the principal type of a term. We discuss instances of the framework that deal with polymorphic records, equational theories and subtypes.

### Citations

1728 | The Java Language Specification - Gosling, Joy, et al. - 2000 |

995 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ... for Program Structures and Data Organization Am Fasanengarten 5, 76128 Karlsruhe, Germany fsulzmann,odersky,wehrg@ira.uka.de 1 Introduction There are many type systems that extend the Hindley/Milner =-=[Mil78]-=- system with constraints. Examples are found in record systems [Oho95, Rem89], overloading [Jon92, HHJW96, NP93, KC92, OWW95], and systems that support subtyping [CCH + 89, BSvG95, AW93, EST95]. Exten... |

994 | A Machine-Oriented Logic Based on the Resolution Principle - Robinson - 1965 |

810 | On understanding types, data abstraction and polymorphism - Cardelli, Wegner - 1985 |

794 | Constraint logic programming: A survey - Jaffar, Maher - 1994 |

587 | A Syntactic Approach to Type Soundness
- Wright, Felleisen
- 1994
(Show Context)
Citation Context ...nt system. Then the Hindley/Milner system is equal to HM(1). All constraints are considered to be true. We now discuss type soundness of our type system. We use a syntactic approach to type soundness =-=[WF91]-=-. We have the following two reductions: (fi) (x:e)v \Gamma! [v=x]e (LET) let x = v in e \Gamma! [v=x]e Then, we can state the following lemma. (VAR) C; \Gamma ` x : oe (x : oe 2 \Gamma) (ABS) C; \Gamm... |

384 | Principal type-schemes for functional programs - Damas, Milner - 1982 |

246 | Principal Type Schemes for Functional Programs - Damas, Milner |

230 | Uni Revisited - Lassez, Maher, et al. - 1988 |

225 | Type inclusion constraints and type inference - Aiken, Wimmers - 1993 |

161 | The type and effect discipline - Talpin, Jouvelot - 1992 |

145 | Fbounded Polymorphism for Object-Oriented Programming - Canning, Cook, et al. - 1989 |

143 | PolyTOIL: A Typesafe Polymorphic Object-oriented Language - Bruce, Schuett, et al. |

136 | Type checking records and variants in a natural extension of ML - Rémy - 1989 |

134 |
Qualified types: Theory and practice
- Jones
- 1994
(Show Context)
Citation Context ...n the Hindley/Milner system. It says that only those types �� that satisfy the constraint D can legally be substituted for the bound variables ff in a type scheme 8ff:D ) �� . No satisfiabilit=-=y check [Jon92]: C [ D; \Gamma ` e : ��-=-�� �� ff 62 tv(C) [ tv(\Gamma) C; \Gamma ` e : 8��ff:D ) �� (8 Intro-1) Weak satisfiability check [AW93]: C [ D; \Gamma ` e : �� 9D �� ff 62 tv(C) [ tv(\Gamma) C; \Gamma ` e : 8�... |

129 | An ideal model for recursive polymorphic types - MacQueen, Plotkin, et al. - 1986 |

129 | P.: Type classes in Haskell - Hall, Hammond, et al. - 1996 |

107 |
Cylindric Algebras
- Henkin, Monk, et al.
- 1971
(Show Context)
Citation Context ...ives a semantic justification for the consistency requirements and their simplification techniques. 3 Constraint Systems We present a characterizations of constraint systems along the lines of Henkin =-=[HMT71]-=- and Saraswat [Sar93]. Definition 1 (Simple Constraint System) A simple constraint system is a structure(\Omega ; ` e ) where\Omega is a non--empty set of tokens or (primitive) constraints 1 and ` e `... |

106 | Sound polymorphic type inference for objects - Eifrig, Smith, et al. - 1995 |

85 | A simple algorithm and proof for type inference - Wand - 1987 |

77 | A polymorphic record calculus and its compilation - Ohori - 1995 |

73 | Simplifying subtyping constraints, in - Pottier - 1996 |

72 | Coercion and type inference - Mitchell - 1984 |

69 | Three approaches to type structure - Reynolds - 1985 |

62 | Subtyping constrained types - Trifonov, Smith - 1996 |

55 | Type inference in the presence of overloading, subtyping and recursive types - Kaes - 1992 |

54 | Efficient inference of object types - Palsberg - 1995 |

53 | Simplifying and improving qualified types
- Jones
- 1995
(Show Context)
Citation Context ...allows us to formulate a logically pleasing and pragmatically useful rule (8 Intro) for quantifier introduction. Second, projection is an important source of opportunities for simplifying constraints =-=[Jon95]-=-. In our framework, simplifyingsmeans changing the syntactic representation of a constraint without changing its denotation. For example, the subtyping constraint 9fi:ffsfi; fisfl can safely be simpli... |

51 | Type checking higher-order polymorphic multi-methods - Bourdoncle, Merz - 1997 |

45 | Principal type schemes for functional programs with overloading and subtyping
- Smith
- 1994
(Show Context)
Citation Context ...) C; \Gamma ` e : 8��ff:D ) �� (8 Intro-1) Weak satisfiability check [AW93]: C [ D; \Gamma ` e : �� 9D �� ff 62 tv(C) [ tv(\Gamma) C; \Gamma ` e : 8��ff:D ) �� (8 Intro-2) Stro=-=ng satisfiability check [Smi94]: C [ D; \Gamma ` e : �� C ` [��-=-���� =��ff]D �� ff 62 tv(C) [ tv(\Gamma) C; \Gamma ` e : 8��ff:D ) �� (8 Intro-3) Duplication [EST95]: C [ D; \Gamma ` e : �� �� ff 62 tv(C) [ tv(\Gamma) C [ D; \Gamma ` ... |

40 | A Second Look at Overloading - Odersky, Wadler, et al. - 1995 |

40 | Typing record concatenation for free - Rémy - 1992 |

38 | Extending ML type system with a sorted equational theory - Rémy - 1992 |

38 | Parametric type classes - Chen, Hudak, et al. - 1992 |

32 | C.: Type checking type classes - Nipkow, Prehofer - 1993 |

20 | Polymorphic Type Inference for Languages with Overloading and Subtyping - Smith - 1991 |

3 | Polymorphic binding-time analysis in polynomial time - Dussart, Henglein, et al. - 1995 |

2 | Type inference for recursivly constrained types and its application to object oriented programming - Eifrig, Smith, et al. - 1995 |

2 | Proofs of Soundness and Completeness of Type Inference for HM(X - Sulzmann - 1997 |

2 | Type inference for recursivly constrainted types and its application to object oriented programming - Eifrig, Smith, et al. - 1995 |

1 | Simplifying and improving qualified types - thesis - 1992 |

1 | Polymorphic recursion and subtype quantifications: Polymorphic binding-time analysis in polynomial time - Dussart, Henglein, et al. - 1995 |

1 |
Proof of the properties for constrained types
- Sulzmann
- 1996
(Show Context)
Citation Context ...eting the conditions, we present a generic type inference algorithm that will always yield the principal type of a term. The proofs for the properties can be found in the forthcoming technical report =-=[Sul96]-=-. The rest of this paper is structured as follows: In Section 2 we discuss some previous approaches to constrained type systems, and how they differ in their quantifier introduction rule. Section 3 pr... |

1 |
Proof of the principal type property for system O. Technical report, Universitat Karlsruhe, Interner Bericht 16/96
- Wehr, Odersky
- 1996
(Show Context)
Citation Context ...f type �� and result of type �� 0 . So normalization must check wether such an instance is defined. A proof of termination and minimality of the result for the normalization algorithm can be f=-=ound in [WO96]. Normalization extension : over-=-loading o : T �� ! �� 0 ) if o : oe T 62 \Gamma then fail else let oe T j 8ff:C 0 ) T ff ! �� in D := D [ [�� =ff]C 0 [ f! �� 0 = [�� =ff]�� ?g; o : ff ! �� ) for all o... |

1 | Parametric type classes - Wegner - 1992 |

1 | The type and effect discipline - Hall, Jones, et al. - 1992 |