mirror of
https://github.com/github/semantic.git
synced 2024-12-26 08:25:19 +03:00
1302fe4ac8
Now that we're on GHC 8.6, we can use `-XDerivingVia` in many cases where we previously had to write instances by hand. If you're not familiar with `-XDerivingVia`, the [GHC proposal][ghc] is a good place to start. [ghc]: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0023-deriving-via.rst Thanks to the `generic-monoid` package, we can derive a `Semigroup` instance for any product type whose members are `Semigroups`, and the same goes for `Monoid`. This entails an extra dependency, but it is better than the `generic-deriving` package, which is way too much overhead. I've also switched some trivial definitions to newtype-deriving. Please be aware that this bumps `hlint` and `haskell-src-exts` so that `hlint` doesn't choke on the `DerivingVia` extension. You'll need to `stack install hlint` to get it on your `PATH`. Apologies! |
||
---|---|---|
.. | ||
Monoidal.hs |