Inhibit electric-indent-mode
Use read-key instead of read-event for module completion (fixes #360)
Accept anything on RET when there's no match in module completion
Inherit w3m-haddock heading highlight from magit-item-highlight
More thoroughly disable electric-indent

See #377
Revert "More thoroughly disable electric-indent"

This reverts commit 99658ce11e08b8f0825a17247bc84336b6a4cd8c.
Disable indent-tabs-mode in haskell-cabal-mode

"Tabs are not allowed as indentation characters due to a missing
standard interpretation of tab width." - Cabal manual

See #44
Sandboxable haskell-mode using haskell-process-wrapper

Following the discussion from
https://github.com/haskell/haskell-mode/pull/350#issuecomment-59434038,
creating a haskell-process-wrapper.

Excluded cask tests.
Refactor to use only a `haskell-process-wrapper-function`.

Following this discussion - https://github.com/haskell/haskell-mode/pull/370#issuecomment-63237778.

This permits to one's own wrapper function.

For example, here is one to use with nix-shell:

```sh
(custom-set-variables '(haskell-process-wrapper-function
                        (lambda (argv) (append (list "nix-shell" "default.nix" "--command" )
                                          (list (shell-quote-argument (mapconcat 'identity argv " ")))))))
```

Unit tests are ok.
Need to test in real life now.

Tests removed.
Improve the docstring to show as example a function that actually works.
Move docstrings to before interactive decls.
Large re-organization to remove cyclic module dependency graph #381
Explicitly require cl-lib wherever it's used.

Don't depend on other files to load cl-lib, because whether a file
uses it or not is an implementation detail.

Also, remove a (require 'cl) introduced in c3a44b6bd23ea.
Add haskell-mode-find-uses command
Make highlight-uses-mode behave more like C-s/C-r wrt C-g/RET
Use isearch face instead of isearch-lazy-highlight
Restore autoload for haskell-process-load-file

`haskell-process-load-file` lost its autoload directive during the
project reorganisation.
Support inserting type signature for local declarations or selected expressions
Quick hack to support bangs in fields

Proper fix is to fix haskell-ident-at-point
Add autoloads on all interactive commands (#392)