Haskell Tools Refact (ht-refact) is a refactoring tool for haskell. Refactoring means program transformation that keeps the semantics of a program, but improves the structure. So the refactored program can more flexible, shorter, easier to read or even faster than the original.
Haskell is a very good language for refactoring. One reason is that pure haskell functions cannot cause side effects. So in many occasions the program can safely be restructured, for example calls to functions can safely replaced with the bodies of the functions and vica versa.
The refactoring tool uses GHC as a backend, so it will always have the latest features and language extensions. It keeps the layout and comments of the original source code.
Check out the demo website, where you can try out the tool without the need to install anything.