A group of Githubbers who use Haskell in commercial settings have put together the Emacs integration, dubbed Intero for Emacs.
Stack is a requirement.
Features include on-the-fly type checking, and projects can each run their own GHC or LTS version.
The Commercial Haskell group's Company package is included out-of-the box to provide auto-complete using locally-declared identifiers, identifiers in the module, or imported into the module.
And it's purely coincidence* that fairly soon after John Wiegley went to a Haskell conference and went home lead maintainer of Emacs, that Haskell should get its first full Emacs IDE, right? ®
*Bootnote: It was a joke. ®