A Case Study on Refactoring in Haskell Programs

Da Young Lee
North Carolina State University, USA

Programmers use refactoring to improve the design of existing code without changing external behavior. Current research does not empirically answer the question, “Why and how do programmers refactor functional programs?” In order to answer the question, I conducted a case study on three open source projects in Haskell. I investigated changed portions of code in 55 successive versions of a given project to classify how programmers refactor. I found a total of 143 refactorings classified by 12 refactoring types. I also found 5 new refactoring types and propose two new refactoring tools that would be useful for developers.