School of Computing

An Expression Processor: A Case Study in Refactoring Haskell Programs

Christopher Brown, Huiqing Li, and Simon Thompson

In Rex Page, editor, Eleventh Symposium on Trends in Functional Programming, pages 182-196, May 2010.


Refactoring is the process of changing the structure of a program while preserving its behaviour. This behaviour preservation is crucial so that refactorings do not introduce any bugs. Refactoring is aimed at increasing code quality, programming productivity and code reuse. Refactoring has been practised manually by programmers for as long as programs have been written; however, with the advent of refactoring tools, refactoring can be performed semi-automatically, allowing refactorings to be performed (and undone) easily.

In this paper, we briefly describe a number of refactorings implemented in the Haskell Refactorer, HaRe. In addition to this, we also implement a simple expression processor to demonstrate how some of the refactorings implemented in HaRe can be used to aid programmers in developing Haskell software.

Download publication 173 kbytes (PDF)

Bibtex Record

author = {Christopher Brown and Huiqing Li and Simon Thompson},
title = {{An Expression Processor: A Case Study in Refactoring Haskell Programs}},
month = {May},
year = {2010},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {inproceedings},
    submission_id = {2225_1273563871},
    booktitle = {Eleventh Symposium on Trends in Functional Programming},
    editor = {Rex Page},
    refereed = {preliminary refereeing},

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014