Evolving Ispell: a Case Study of Program Understanding for Reuse