Understanding the typeclassopedia type classes. Primary goal is to gain understanding