- putting the NodeCache behind an IORef had been chose because those
could've been read non-blocking
- the same is true for TVars. The performance characteristics are likely
worse, but at the advantage of composability within STM monads
This commit brings in an HLint configuration file
and several recommended modifications such as:
* End-of-line extra spaces removal;
* Import lines ordering;
* Redundant $ removal;
* Generalisation of ++ and map to <> and fmap;
* Preferring `pure` over `return`;
* Removing extraenous extensions.
And finally, a `stylish-haskell` helper script
that detects if code files are dirty. Can be useful for CI,
although manually calling it can be nice if you would rather
first implement then beautify.