
Not exactly answering your question, but here's the top refactorings that I'd like to see in a Haskell IDE: * rename identifier (aware of scopes, modules, qualified imports etc.) * move definition from one module to another (aware of ...) * change "type" to "newtype" or "data" * change positional to named record notation * introduce parameter (to function) (with a default value that is plugged in at each call site) * change order of parameters * introduce parameter object That's the kind of basic rewriting that is really really awkward to do with a plain text editor (because you really need the annotated AST, with names resolved, and types attached) - so it's usually avoided (well, by me) and the result is code that is a nightmare to maintain.