Haskell Language Server Meets Curmudgeon's Workflow
A Haskell developer tests HLS with Emacs’s Eglot client, pairing it with ghcid, Nix, direnv, and foreign-store to approximate live, state-preserving development. The result improves code introspection, but setup friction, restarts, and editing latency remain significant.
HLS is a useful quality-of-life upgrade, but better editor intelligence alone does not create a live programming environment. The strongest workflow comes from combining HLS with reload and state-management tools.
- –HLS provides diagnostics, type information, completion, definitions, references, formatting, and code actions through LSP, with functionality organized into configurable plugins. [HLS documentation](https://github.com/haskell/haskell-language-server)
- –The setup tax is substantial: GHC-matched binaries, Cabal configuration, Nix and direnv integration, Eglot environment handling, and occasional server reconnects. [Original article](https://entropicthoughts.com/curmudgeon-tries-language-server)
- –ghcid combined with foreign-store delivers the more compelling Lisp-like benefit: automatic reloads while preserving important application state.
- –Multi-component Cabal projects complicate live reload, forcing the author to co-locate executable, library, and test code for experimentation.
- –HLS’s latency and restart behavior can undermine fast modal editing, making it valuable selectively rather than universally.
DISCOVERED
11d ago
2026-08-26
PUBLISHED
11d ago
2026-08-26
RELEVANCE
AUTHOR
crescit_eundo