Lately though, after near a decade of using vim, I've been trying to unlearn vim. Many editors provide easy ways to navigate, search and replace the way you do in vim 80% of the time without all the baggage that modes bring. The baggage that vim creates is muscle memory training to navigate with hjkl which is incompatible with non-vim input boxes. I'm also not a fan of the vim source code or its creator and it may be too late for me to care about neovim.
Another negative aspect of vim is that at least in myself and maybe in others it leads to an unearned increase level of engineering confidence as you master an arguably useless, esoteric skillset that doesn't translate into better understanding of basic computer science topics. Vim does help improve regular expression familiarity, but that may be it.
So for example, Clojure has vim-fireplace for an excellent clojure experience. Same thing with Haskell.
Go to where the users are and your life will be easier.
I don't use Syntastic, but haskellmode-vim and ghcmod-vim integrate nicely with ghci, and neco-ghc gives autocompletion.
I don't use tags files or other project-level stuff, the above is good enough to get started.
Also once you have ghcmod-vim you can map a key to tell you the type of an expression:
au FileType haskell nnoremap <buffer> <F12> :GhcModType<CR>
It does take some work to get all these things installed, however.In emacs i just gave up and tried to learn vanilla emacs even though i am a vim user.