Refactoring Functional Programs

[back to project home page]

A small, but growing heap of potentially related work, in no particular order. To be harvested, amended, summarised and sorted..

Functional refactoring people, potentially relevant Haskell tools and projects..


Mark Tullsen (now at OGI). While a PhD student with Paul Hudak at Yale, wrote a thesis onprogram transformation system for Haskell called PATH (Programmer Assistant for Transforming Haskell).
Ralf Lämmel and Jeremy Gibbons have been interested in (strategic) program transformation and generic refactoring. There's a lot of work on functional techniques for program transformation on Ralf's publications page, but of special interest for us in the context of functional refactoring are: A Framework for Datatype Transformation (Kort/Lämmel), Reuse by program transformation (Lämmel)
Oege de Moor and Ganesh Sittampalam have been working on MAG - a small transformation system for Haskell
Martin Erwig has been looking at program change on the basis of Programs as abstract data types (instead of concretely represented strings of characters). Together with Deling Ren, he has been working on a Haskell Update Language or update calculus.
Eelco Visser has been working on program transformation and strategic rewriting
Simon Marlow is working on an API for plugging GHC into Visual Studio.

Haskell frontends (cf. Haskell Community Report sections on this: November 2001, May 2002). Ideally, we'd need both parsing/pretty-printing and type checking/static analysis to get the syntax and static semantic information to base our refactorings on.

Haskell meta-programming, generic programming, toolsets and transformation frameworks. Once we've got the semantic information for our refactorings, the real work begins (program analysis and transformation).

Haskell IDEs, program development and maintenance tools, editor modes, ..


If you are aware of other relevant pointers, please send us an email, and we'll eventually get round to updating this page.