School of Computing

Tool Support for Refactoring Functional Programs

Huiqing Li and Simon Thompson

In Partial Evaluation and Program Manipulation, pages 182-196, San Francisco, California, USA, January 2008.


Tool Support for Refactoring Functional Programs

We demonstrate the Haskell Refactorer, HaRe, and the Erlang Refactorer, Wrangler, as examples of fully-functional refactoring tools for functional programming languages. HaRe and Wrangler are designed to handle multi-module projects in complete languages: Haskell 98 and Erlang/OTP. They are embedded in emacs (and gvim) and respect programmer layout styles.

In discussing the construction of HaRe and Wrangler, we comment on the different challenges presented by Haskell and Erlang due to their differences in syntax, semantics and pragmatics. In particular, we examine the sorts of analysis that underlie our systems.

Finally, drawing on our experience, we examine features common to functional refactorings, and contrast these with refactoring in the object-oriented domain.

Download publication 330 kbytes

Bibtex Record

author = {Huiqing Li and Simon Thompson},
title = {{T}ool {S}upport for {R}efactoring {F}unctional {P}rograms},
month = {January},
year = {2008},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {},
url = {},
    publication_type = {inproceedings},
    submission_id = {17930_1196217475},
    booktitle = {Partial Evaluation and Program Manipulation},
    address = {San Francisco,  California, USA},
    refereed = {yes},

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

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

Last Updated: 21/03/2014