In this episode we'll discuss the the four different ways GHC offers for deriving class instance definitions: the classic 'stock' deriving, generalised 'newtype' deriving, as well as the 'anyclass' and 'via' strategies. For each of these, we'll explain the underlying ideas, use cases, and limitations.