I am please to announce an alpha release of the Haskell Refactorer making use of the GHC API.

It is a work in progress, but currently supports the following refactorings


       iftocase
           Convert an if expression to a case expression

       dupdef
           Duplicate a definition

       liftToTopLevel
           Lift a declaration to the top level

       liftOneLevel
           Lift a declaration one level

       demote
           Move a declaration down one level

       rename
           Rename an identifier

It offers emacs integration only at this point, based on the Wrangler elisp.

The underlying environment in terms of cabal file, sandbox, etc are managed by ghc-mod via the internals exposed in version 2.1.2

There are some known issues (and bound to be plenty of unknown ones too).

The most damaging of these is that layout is not adjusted after renaming an identifier if the new name is a different length. This affects layout-sensitive code.

Installation instructions can be found at https://github.com/alanz/HaRe/blob/master/README.markdown

Regards
  Alan