Results 1 
2 of
2
Proofs about a Folklore LetPolymorphic Type Inference Algorithm
 ACM Transactions on Programming Languages and Systems
, 1998
"... The Hindley/Milner letpolymorphic type inference system has two different algorithms: one is the de facto standard Algorithm W that is bottomup (or contextinsensitive), and the other is a "folklore" algorithm that is topdown (or contextsensitive). Because the latter algorithm has not been forma ..."
Abstract

Cited by 51 (1 self)
 Add to MetaCart
The Hindley/Milner letpolymorphic type inference system has two different algorithms: one is the de facto standard Algorithm W that is bottomup (or contextinsensitive), and the other is a "folklore" algorithm that is topdown (or contextsensitive). Because the latter algorithm has not been formally presented with its soundness and completeness proofs, and its relation with the W algorithm has not been rigorously investigated, its use in place of (or in combination with) W is not well founded. In this article, we formally define the contextsensitive, topdown type inference algorithm (named "M"), prove its soundness and completeness, and show a distinguishing property that M always stops earlier than W if the input program is ill typed. Our proofs can be seen as theoretical justifications for various typechecking strategies being used in practice.
Type Reconstruction Algorithms: A Survey
, 2007
"... Most type reconstruction algorithms can be broadly classified into two distinct categories: unification and substitution based and constraint based. This report is a survey of some of the popular type reconstruction algorithms in the above two categories to promote better understanding of these algo ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Most type reconstruction algorithms can be broadly classified into two distinct categories: unification and substitution based and constraint based. This report is a survey of some of the popular type reconstruction algorithms in the above two categories to promote better understanding of these algorithms. We have implemented the above algorithms for a language based on pure lambda calculus extended extended with poylorphic let construct on some nontrivial examples. 1