Studying them is a very rewarding process that I'm highly recommending. However, it is definitely beyond the scope of the present article. Thus, I'm only pointing to two resources covering this part of the Haskell type class hierarchy. The first one is the legendary Typeclassopedia by ...