In the context of object-oriented programming, many solutions have been proposed
to the problem of type inference [17,16,1,21,6,20,12], but the increasing
interest in dynamic object-oriented languages is asking for ever more precise and
efficient type inference algorithms [3,12].
Two important features which should be supported by type inference are parametric
and data polymorphism ; the former allows invocation of a method on
arguments of unrelated types, the latter allows assignment of values of unrelated
types to a field.