Refactoring is the process of incrementally improving the design of software.
Far more than you ever wanted to know about refactoring at http://www.refactoring.com/.
Some of the work being done in functional languages, and Haskell in particular:
- Refactoring Functional Programs aka the refactor-fp project
- Generic refactoring in Haskell
- Datatype refactoring in Haskell
- http://www.refactoring.com/ - the refactoring meta-site by Martin Fowler, linking to lots of other useful stuff.
- .NET Refactoring tutorial