Wouter Swierstra’s Data Types à la Carte paper
Selective applicative functors package
Selective Applicative Functors: Declare Your Effects Statically, Select Which to Execute Dynamically - GitHub - snowleopard/selective: Selective Applicative Functors: Declare Your Effects Staticall...
A Generic Deriving Mechanism for Haskell
Guessing Swift takes a similar approach in [SE-0185](https://github.com/apple/swift-evolution/blob/098152eafbfbd7faa74d81e1443231bd7caabc45/proposals/0185-synthesize-equatable-hashable.md).
Advanced Functional Programming ’18’s course materials