The current approach for having a complex Haskell project with dependencies is using stack. While it is suitable for larger projects, we avoid it for our undergrad students, who only need ghc, ghci and small editor support.
We found a subset of VSCode plugins that provide an integrated interpreter, provide type information, autocomplete and even runs (sometimes too strict) hlint on your code automatically. Neither of this plugins requires Stack.
The main issue is that we teach QuickCheck and we need to install it globally. This is far from being straightforward in Windows and MacOS.
In Ubuntu it is quite direct using apt
sudo apt-get install hlint haskell-platform libghc-quickcheck2-dev
Here is the solution for the Mac, just make sure to adapt to your own GHC version:
brew cask install cabal-install ln -s ~/.cabal/store/ghc-8.10.1/package.db ~/.ghc/x86_64-darwin-8.10.1/package.conf.d cabal install QuickCheck
If you now open
ghci, it will
import Test.QuickCheck successfully.
For reference, here are the plugins that work successfully without any Stack dependencies:
code --install-extension jcanero.hoogle-vscode code --install-extension justusadam.language-haskell code --install-extension hoovercj.haskell-linter code --install-extension dramforever.vscode-ghc-simple code --install-extension meowcolm024.has-go