Haskell

Programming Haskell without LSP is extremely unpleasant.

In general, HLS needs to be compiled with the same version of GHC used by the project.

Issues often arise if there are multiple tools managing HLS/GHC versions. For example, Stack wants to (by default) manage its own versions of GHC. This is really bad for user experience with HLS. It's not clear, but the version of GHCUp packaged by Gentoo may not provide the hooks to allow GHCUp to manage GHC versions on behalf of Stack. When used with Lazyvim, Mason will also attempt to install a version of HLS (equally bad).

Debugging steps: 1. Determine GHC version: stack exec ghc -- --numeric-version The stackage server also has a list that correlates GHC version to release channel. This will be handy to get all projects using the same GHC version. 2. Compile HLS at that version:

ghcup list | grep hls | grep recommended
ghcup compile hls -v <hls-version> --ghc <ghc-version>