Is there an idiomatic Haskell?
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.
I 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.
There 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.
Discussion in the ATmosphere