When I started developing in Haskell, there were many opinions on what build-tools, what IDE/text-editor you should use. Each coming with their own pros and cons.
After playing around with the number of options, I eventually found a setup which just works, and would like to share that tool stack with anyone / newcomers who are still undecided on what toolchain they should use.
Project Building and Management
For the project building and management side of things,
Cabal is my main go-to solution.
Nix and Cabal
Nix is a package manager for Linux and Unix systems. (Think
virtualenv but on steroids).
Cabal is a package manager for Haskell, combine that with
Nix and you'll have next level sandboxing and environment reproducability.
I tried many different editors/ide-combos but eventually settled on
ghci, due to it's sheer simplicity.
NeoVim is great. It's lightweight, its simple, and it boots up almost instantly. It also does the one thing you want a text editor to do really well - editing text.
Glasgow's Haskell Compiler Interactive is a REPL for Haskell. Just because it's simple doesn't mean its not powerful though.
With the use of
ghci will able infer the types and assist you in solving the problem.
Developing on Haskell can be as complicated, or as simple as you choose it to be.