Contents

1 Newbie guide

Emacs is an extensible texteditor which can be extended with so-called "modes" and makes great use of keystrokes. Modes are written in Emacs Lisp (.el) programming language and provide additional commands and keystrokes. A mode is usually activated automatically via "hooks" based on file extensions (.hs, .cabal etc.) but can also be loaded during Emacs startup (~/.emacs) or in Emacs itself (enter: M-x haskell-mode). Non of the mode listed below provides a complete out-of-the-box IDE but rather adds only a set of specific functionality whereas each mode must be installed separately. Lookup the specific help files to find out what each of them provide. To test if haskell-mode is actually installed type: M-x haskell-<tab>. You should get a list of commands. Entering "haskell-mode" provides additional commands. Try "haskell-version" for example.

2 Haskell-mode

The 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.

Documentation on how to use `scion.el` can be found in the `README.markdown` file.

The primary repository is at nominolo/scion. An experimental fork featuring GHC7 support can be found at hvr/scion. The hackage version is probably outdated, so better use the upstream version.

4 ghc-mod

"ghc-mod" is a backend command to enrich Haskell programming on editors including Emacs and Vim. The ghc-mod package on Hackage includes the "ghc-mod" command and Emacs front-end. Its source repository is on github.

Emacs front-end is an extension of Haskell mode. They enable to complete Haskell symbols on Emacs and to browse documents of modules. Flymake with GHC/Hlint is also integrated.