{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreia7fvjou2u2woapv2dzw7e7t3jmoswvlwvaphbiqxx5h4h4m2swcu",
    "uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mllqn6rvc2o2"
  },
  "path": "/t/is-there-an-idiomatic-haskell/14042#post_10",
  "publishedAt": "2026-05-11T15:21:08.000Z",
  "site": "https://discourse.haskell.org",
  "textContent": "Back in junior times I found it very helpful to just read source code of libraries I use (`aeson`, `base`, whatever) to get a feeling of how the code should be structured. Eventually I developed my own style.\n\nI find using formatters very disturbing however. Even in a small team it’s surprisingly hard to settle on one version of the same formatter or vscode remove-trailing-whitespaces (silly, I know!). This often results in huge diff noises.\n\nThere are some classics everyone should read (like “Parse, don’t validate” mentioned), otherwise there is just a multum of correct ways to write the exact same thing. I find style guides more than enough and satisfactory for this purpose. Some people like writing list comprehensions, some use list’s `Monad` instance. Some default to `mtl`, some prefer explicit `IO`. Make an informed decision and stick to it. Luckily, Haskell is just _extremely_ easy to refactor, so the decisions can be changed.",
  "title": "Is there an idiomatic Haskell?"
}