- [ ] Explain `DerivingVia` instead of `GeneralizedNewtypeDeriving` - [ ] Remove `Functor` and `Applicative` instances boilerplate