There are many Emacs packages and modules for Haskell. The most prominent ones are haskell-mode, ghc-mod and Scion.
haskell-mode package is a set of major modes for Emacs for writing Haskell code and working with Haskell projects. Features syntax highlighting, intelligent indentation, interaction with inferior Haskell interpreter, code browsing, and Cabal project integration. It support Hugs, GHCi, Cabal and hslint, hoogle, cabal-dev, and other utilities.
Haskell-mode is maintained by Philip Weaver. The official project is hosted on Github. For instructions on installing, see Emacs/Installing haskell-mode. Issues should be reported to the Github project. Please state the version of Emacs and any relevant configuration, when writing your issue. There is a low traffic mailing list, too. Generally it is responsive to new posts.
- Emacs/Keybindings and simple usage
- Emacs/Unicode symbols
- Emacs/Inferior Haskell processes
- Emacs/Automatic unit testing
- Emacs/Automatic building
- Emacs/API searching
- Emacs/Code folding
- Emacs/Project navigation
- Emacs/Literate programming
The Scion IDE library can be used to complement the haskell-mode with additional features, such as (quoting the documentation):
- Highlights error messages directly in the source, together with a tool-tip
- Optional on-the-fly typechecking (idle-time based, or whenever file is saved)
- Completion on `LANGUAGE` names, pragmas, external module names and `OPTIONS`-flags
- Go to definition sites of symbols at point
Documentation on how to use `scion.el` can be found in the `README.markdown` file.