Skip to main content

Tool Support for Refactoring Functional Programs

Li, Huiqing and Thompson, Simon (2003) Tool Support for Refactoring Functional Programs. In: Jeuring, Johan, ed. Proceedings of the 2nd Workshop on Refactoring Tools. ACM, pp. 27-38. ISBN 1-58113-758-3. (doi:10.1145/1636642.1636644) (KAR id:13934)

Language: English
Download (145kB) Preview
[thumbnail of tool-support-for-rfp.pdf]
This file may not be suitable for users of assistive technology.
Request an accessible format
Official URL:


Refactorings are source-to-source program transformations which change program structure and organisation, but not program functionality. Documented in catalogues and supported by tools, refactoring provides the means to adapt and improve the design of existing code, and has thus enabled the trend towards modern agile software development processes. Refactoring has taken a prominent place in software development and maintenance, but most of this recent success has taken place in the OO and XP communities. In our project, we explore the prospects for Refactoring Functional Programs, taking Haskell as a concrete case-study. This paper discusses the variety of pragmatic and implementation issues raised by our work on the Haskell Refactorer. We briefly introduce the ideas behind refactoring, and a set of elementary functional refactorings. The core of the paper then outlines the main challenges that arise from our aim to produce practical tools for a decidedly non-toy language, summarizes our experience in trying to establish the necessary meta-programming infrastructure and gives an implementation overview of our current prototype refactoring tool. Using Haskell as our implementation language, we also offer some preliminary comments on Haskell programming-in-the-large.

Item Type: Book section
DOI/Identification number: 10.1145/1636642.1636644
Uncontrolled keywords: refactoring functional programs tool Haskell Strafunski Programatica
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Funders: Association for Computing Machinery (
Depositing User: Mark Wheadon
Date Deposited: 24 Nov 2008 18:00 UTC
Last Modified: 16 Nov 2021 09:52 UTC
Resource URI: (The current URI for this page, for reference purposes)
Thompson, Simon:
  • Depositors only (login required):


Downloads per month over past year