Newer version of the Infer Type refactoring from FernUni Hagen:
Purpose
to replace the declared types of declaration elements with ones that have no unneeded members; to minimize coupling between classes
Another refactoring tool from FernUni Hagen:
Purpose
to check code for possible generalizations of declared types; to detect the smell of not using suitable abstractions