так, вот рабочий способ
1. снести все хаскельное с системы, ghc, cabal, stack, все
2. поставить ghcup
3. из него поставить ghc, cabal, hls
4. в вскоде поставить haskell плагин который с language server
все, получаем рабочее окружение в вскоде
так, вот этот гайд не потому, как надо делать, а как получить работающее окружение, стак оно не включает, и такие модификации уже на ваше усмотрение