There are really only 5 things you need to know:
- Use 4 spaces.
- Use
stylish-haskell
for imports. - Use spaces around all operators in all cases (exception:
(%)
fromFormatting
). - As a default, use
!
to make all fields indata
types strict. If strictness annotations are omitted, document why. - As a default, make functions lazy. If they must be strict, document why.
- All imports should be either qualified or explicit, i.e. with enumeration of stuff that you're importing (exception:
Universum
).
The rest of the style guide can be found here.