emacs + ghc-modにおいて TABを補完 Shift-TABをindent-cycleにする

GHCiはTabで補完するのにemacsがM-C-iでは耐えられない。
そこで

tab -> 補完
shift+tab -> インデント

とやってみる

haskell-mode は aptitudeで入れる

$ sudo aptitude install haskell-mode

ghc-modもインストールしておく

.emacsへ以下を追加する

;;for haskell-mode                                                                                  
(load "haskell-site-file")
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(add-hook 'haskell-mode-hook 'font-lock-mode)
(add-hook 'haskell-mode-hook 'imenu-add-menubar-index)
(add-hook 'haskell-mode-hook (lambda () (local-set-key [f5] "\C-c\C-l\C-x\omain\C-m\C-xo")))
(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
(add-hook 'haskell-mode-hook (lambda () (local-set-key "\C-i" 'ghc-complete)))
(add-hook 'haskell-mode-hook (lambda () (local-set-key [backtab] 'haskell-indent-cycle)))