Fix internal GHC module translation

Join the module and ident before trying to translate, and split them
back apart again after translating.
Update internal GHC module translations

Align the list and add a missing translation.
Always use the ident as an anchor

Instead of only using it when browsing to an external location, use it
for the web URL *and* the local file path.
Revert "Fix internal GHC module translation"

This reverts commit 53a63a1292d67c5f2dc7f690d57be7c201120ddf.
Fix internal GHC module translation

Split full name apart via regexp and concatenate back together
after translating.
Fix import.qualified.

import.qualified relied on the function `nil-blank-string`, which is not available for all Emacs installs (it wasn't for mine.) Making sure instead that the `name` string is of non-zero length should work just fine, too.
Merge pull request #217 from adimit/patch-1

Fix import.qualified.
Merge pull request #214 from brandonw/master

find-haddock fails to translate internal ghc identifiers
Fix delete-backward-char in haskell-indentation (fixes #211)

The problem in #211 is that while delete-char should only delete the
region if delete-selection-mode is enabled, delete-backward-char
deletes if the region is active and delete-active-region is enabled.
Its default value is t.
Don't show shm's display quarantines in presentation mode
Add a function to guess the module name of the current buffer
Support commenting out of imports

When GHC suggests redundant imports, the question and answers are now:

The import line `Foo' is redundant. Remove?

- y: yes, remove
- n: no, don't remove
- c: comment out the line

This is handy for easily adding back imports when they become relevant
again.

@hvr Might be of interest.
Quick hack to remove "Compilation failed" line

A better solution would be to use markers for these, but I'll prefer
to do that as a general update to interactive-mode when I've more
time. Everything can use markers to get rid of the ugly regex hacks.
Small indentation fix
Support jumping to filenames inside strings
Fix undefined reference to shm-display-quarantine in haskell-present
Automatically add import lines via Hoogle

In similar vein to the other suggestion functionality, now, when "Not
in scope: `foo'" is seen, it will search hoogle for "foo" and if
hoogle returns any result "Foo.Bar foo :: a -> b" it will prompt:

Identifier `foo' not in scope, import `Foo.bar'? (y or n)

And then automatically insert an import for that module in the
offending file. The Hoogle executable needs to be installed for this,
which can be installed via

$ cabal install hoogle

and its database needs to be populated with

$ hoogle data

which will download some standard indexes from the Hackage servers. If
you want Hoogle on all your installed packages and your local
codebase, it's not straight-forward, for reasons unknown.

@hvr might be of interest.
Make dummy global binding to avoid not-in-scope warnings
Automatically add package to cabal file

GHC will often give a message like

Foo.hs:16:18:
    Could not find module `System.Directory'
    It is a member of the hidden package `directory-1.1.0.2'.
    Perhaps you need to add `directory' to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

when you use a module that belongs to a package that isn't in your
cabal file. The haskell process can now prompt you to begin a
process that will add the package to your .cabal file.

Foo.hs:16:18: Could not find module `System.Directory' [ It is a me
.. ]

Add `directory' to some-package.cabal? (y or n)  y

That process can also manually be started with M-x haskell-process-add-dependency

It goes thus:

Package entry: directory >= 1.1.0.2

(that is a prompt, you can edit the package entry there)

Then it switches to the cabal file, and jumps to each build target in
the file, prompting first the library--if there is a library entry:

Add to library? (y or n)  y

And then executables:

Add to executable `some-executable'? (y or n)  y

It will insert the dependency at the top of the build-depends list,
and try to re-indent the item that it knocked off back into the same
level of indentation.

Once all targets are done, it saves the .cabal file and switches back
to the buffer you were originally in.

@hvr might be of interest.
Support the case of multiple available modules for auto-import

In the case of multiple imports e.g. $ has Prelude and Data.Function

it will prompt with ido-completing-read the module to import.