Building trustworthy refactoring tools
Refactorings are program transformations that are intended to change the way that a program works without changing what it does. In this talk I'll explore what this idea means in practice, and how we provide various levels of assurance for refactorings. While the context is tools for Haskell and Erlang, the analysis applies more widely, e.g. to OO languages.