Next: , Previous: , Up: Top   [Index]


10 Interactive Haskell

An alternative mode providing a REPL (read–eval–print loop) via GHCi sessions is called haskell-interactive-mode, which effectively replaces inferior-haskell-mode, but comes with a different set of features:

In order to use haskell-interactive-mode instead of the default inferior-haskell-mode, you need to replace some of the default keybindings in the haskell-mode-map keymap with the respective haskell-interactive-mode counterparts:

(eval-after-load "haskell-mode"
  '(progn
    (define-key haskell-mode-map (kbd "C-x C-d") nil)
    (define-key haskell-mode-map (kbd "C-c C-z") 'haskell-interactive-switch)
    (define-key haskell-mode-map (kbd "C-c C-l") 'haskell-process-load-file)
    (define-key haskell-mode-map (kbd "C-c C-b") 'haskell-interactive-switch)
    (define-key haskell-mode-map (kbd "C-c C-t") 'haskell-process-do-type)
    (define-key haskell-mode-map (kbd "C-c C-i") 'haskell-process-do-info)
    (define-key haskell-mode-map (kbd "C-c M-.") nil)
    (define-key haskell-mode-map (kbd "C-c C-d") nil)))

With haskell-interactive-mode, each Haskell source buffer is associated with at most one GHCi session, so when you call haskell-process-load-file for a Haskell source buffer which has no session associated yet, you’re asked which GHCi session to create or associate with.

TODO/WRITEME