Algorithmically Scrapping Your Typeclasses
reasonablypolymorphic.com