Сперва ставим
emacs-haskell-mode. В .emacs пишем:
(
add-to-list 'load-path
"~/.elisp/packages/haskell-mode/")
(
load "~/.elisp/packages/haskell-mode/haskell-site-file.el")
(
add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
(
add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(
add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(
add-hook 'haskell-mode-hook 'haskell-font-lock-symbols t)
(
set 'haskell-font-lock-symbols t)
(
put 'downcase-region 'disabled nil)
установка haskell-font-lock-symbols в t даст нам замену символов -> на стрелочку, а \ на символ лямбды.
Данный пакет даст нам подсветку, показ строчки с информацией о символе под курсором, выполнение буфера по C-c C-l и много чего еще.
Далее ставим ghc-mod с помощью команды cabal install ghc-mod. В следствии чего, в директории ~/.cabal/bin появится исполняемый файл ghc-mod (либо добавим этот путь в PATH либо скопируем файлы в одну из дирукторий */bin). Файлы из ~/.cabal/share/ghc-mod-x.y.z/ скопируем туда, где их найдет
emacs (у меня это ~/.elisp/packages/ghc-mod). Выполняем в директории куда скопировали команду
make. Добавляем в .emacs следующее:
(
autoload 'ghc-init "ghc" nil t)
(
add-hook 'haskell-mode-hook (lambda () (ghc-init) (flymake-mode)))
Полный список доступных сочетаний
здесь