Developer details GHCi limitations in live-reload Haskell workflow
A blogger describes a quirk of using GHCi (and ghcid) for live code reloading: GHCi can only track one set of source files at a time, so a properly separated project with distinct executable, library and test components can't have all parts reloaded simultaneously. To work around this while editing both tests and program code, the author merges everything into a single component, a compromise unsuitable for serious projects but workable for small experiments.
GoKawiil's interpretation of the reporting above, not reported fact.
The post highlights a structural constraint in Haskell's tooling ecosystem that forces developers to choose between proper project architecture and a smooth live-reload development experience. It's a reminder that popular productivity workflows sometimes only scale to toy projects, and underscores ongoing friction points that tools like language servers aim to address.
- GHCi can only track one component's source files at a time.
- Live-reloading both tests and code requires collapsing separate components into one.
- This workaround suits toy or early-stage projects but not production codebases.
Programming in Haskell by Graham Hutton — If wrangling GHCi reloads and Hspec tests has you deep in the Haskell weeds, Hutton's Programming in Haskell is the classic, approachable guide to the language's core ideas. It's a great companion for toy projects and experiments where you're iterating fast and want the fundamentals rock solid.
See Programming in Haskell by Graham Hutton on Amazon → Affiliate link — we may earn a commission on purchases, at no extra cost to you. Product picked by AI based on this article; it is not a tested recommendation.Source: entropicthoughts.com, 2026-08-26
Published there as: “A curmudgeon tries a language server”
Read the original report → The summary and analysis above are GoKawiil's own, written from reporting by the source above. Facts and quotes belong to the original publisher.