type inference in the presence of overloading, subtyping and recursive types
We present a unified approach to type inference in the presence of overloading and coercions based on the concept of constrained types . We define a generic inference system, show that subtyping and overloading can be treated as a special instance of this system and develop a simple algorithm to compute principal types. We prove the decidability of type inference for the class of decomposable predicates and develop a canonical representation for principal types based on most accurate simplifications of constraint sets. Finally, we investigate the extension of our techniques to recursive types .
type inference types inference presence overload subtype recursion concept generic systems algorithm computation decidability class representation constraint extensibility