|Emacs for Haskell|
YASnippet is a template system for Emacs. It allows you to type an abbreviation and automatically expand it into function templates.
HSnippets is designed for use with haskell-indentation-mode, i.e. it does not do any indentation itself, but relies on the mode (or the user) to do so. Also note that the snippets never add any unnecessary lines to the code listing, only the lines taken up by the snippet itself, leaving the user to manage empty space themselves...