Generic functions are a powerful tool that allows us to make more type classes derivable. In this episode, we'll look at a simple example, namely deriving Monoid instances for product types, using both GHC's built-in generics and the generics-sop library.