A pragmatic guide to monad transformers
When to reach for mtl, when to use plain ReaderT, and how to keep error stacks legible across a real codebase.
A workshop for working Haskellers
Tools, knowledge, and community for working Haskell developers.
02 — Resources
Hand-picked articles, videos, libraries, and tools. Filter by pillar to narrow the list.
When to reach for mtl, when to use plain ReaderT, and how to keep error stacks legible across a real codebase.
A field report from a team running servant-based services for three years. Patterns that scaled, ones that did not.
Practitioners share what worked when bringing developers without prior Haskell experience onto production teams.
Three hours, paced for working developers. Builds intuition for closed and open type families through a worked example.
Minimal flake.nix you can copy in: GHC 9.10, HLS, fourmolu, and a dev shell that just works.
Reading :sprint, spotting accidental thunks, and a shortlist of strictness annotations that pay rent.
The annual gathering returns to Rapperswil. Hack on libraries, meet maintainers, eat lake-side lunches.
Recipes for the queries you actually write: joins, conditional updates, batched inserts, soft deletes.
A practical book of complete projects: a CLI, a web service, a streaming pipeline. Updated for GHC 9.10 idioms.
A patient room for first questions. Answered, on average, within fifteen minutes during European working hours.
OverloadedRecordDot in practiceA migration log: how we moved a 60k-line code base off lens-based field access without breaking compile times.
FoldableThe instances, the laws, and the small-ish lookup table you can keep on your desk to read code faster.
No resources match this filter.
04 — Toolkit
The tools most working Haskellers reach for. Versions are kept current with stable releases.
The Glasgow Haskell Compiler. The canonical implementation; what production code is built with.
Project building and dependency resolution. Pairs with Hackage; speaks `.cabal` files.
Curated snapshots through Stackage. Reproducible builds without a flake or pin file.
Haskell Language Server. Editor integration, type-on-hover, code actions, formatting hooks.
Installer and toolchain manager. The friendliest way to keep multiple GHCs side-by-side.
Configurable code formatter. The community default for projects that want predictable diffs.
Suggestions for cleaner Haskell. Enforceable in CI, configurable per project.
A formatter for `.cabal` files. Keeps stanza ordering and comment placement consistent.
05 — Community
Highlights from people building things, plus the channels where conversation actually happens.
“Most of the time you do not need mtl. Most of the time you do, you only need three layers.”
A field report on running servant-based services for three years — what scaled and what we replaced.
polyglot-rpc 1.0A typed RPC layer that speaks JSON, MessagePack, and Protobuf. Schema lives in Haskell, clients in seven languages.
A long thread of stories from teams that brought in juniors without prior Haskell experience and made it work.
Contribute
haskeller.net is community-maintained. Suggest a resource, fix a broken link, or submit a write-up — everything happens in a single repo with light review and short feedback loops.