デフォルトだとグローバルに存在するghcやrunhaskellを使ってしまい、stackで入れたパッケージが使えない。
追記(2019/05/12): ALEの設定はまだうまくいってないかもしれません(ただ単に全てのエラーが表示されなくなった気がする)
ALEの設定
(ALEはリントツール等用のみで使用し、Lspはvim-lspに任せているため使用していません。)
ale_lintersでstack-ghcを指定してあげます
let g:ale_linters = {
    \ 'haskell': ['stack-ghc'],
    \ }
また、この時**hie等も同時に指定しない**ようにしてください。自分の環境だと動きませんでした。
QuickRun
g:quickrun_config.haskellを作成し、設定を書き込んでやります。
let g:quickrun_config = {}
let g:quickrun_config.haskell = {'command': 'stack',
                                \'cmdopt': 'runhaskell',
                                \}
ここで**'command': 'stack runhaskell'としない**ことが重要です。
そうした場合、「そんなもんねーよ!」と怒られてしまいます。
[2019-05-11 21:59]