Making refactoring safer through impact analysis
Refactoring for generalization using type constraints