Welcome to Type Classes! On February 24, 1988, Philip Wadler introduced Philip Wadler, Overloading in Haskell (proposal). An October 1988 white paper formalized the proposal, using the term “type classes”. the idea of type “classes” for Haskell, as a solution to the problem of overloading. Thirty years later, we present Type Classes.

Who we are I am one of the authors of Haskell Programming from First Principles, more often called “haskellbook.” While many people successfully learned Haskell from my book, I knew I wanted to write an intermediate Haskell book to follow it up. I originally conceived that followup as a referencee manual; in private, I referred to it as “the Haskell enchiridion” after the Greek word that means “manual or handbook”. After reading his blog post Unwanted Haskell triangle. about an unwanted Stack Overflow answer, I asked Chris Martin to work with me on the enchiridion. Though he wasn’t sold on that title, he also wanted a practical manual for Haskell. He has been a developer for many years, and brought a breadth of experience, and opinions about things like tooling, that I was lacking. Our backgrounds and styles would complement each other. About a year ago, we announced that we were working on a new, intermediate Haskell book called The Joy of Haskell. And working is what we have been doing! We planned to cover a huge number of practical matters, as well as locate Haskell in its context, a context that spanned from Leibniz, Boole, and Frege, to Noam Chomsky, Saunders Mac Lane, and the developers of Lisp. In short, our Joy overflowed. We had far too much to say about Haskell and its ecosystem, historical and contemporary. We fretted over how to fit it all into a reasonably sized book. We felt pressured to cut back on library coverage and other topics, although early feedback on the outline suggested people wanted to read even more about those practical topics than we felt we could include. So, I convinced him that what we really needed to do was start a site where all the overflow could go, a site that could also host new ideas we’ve both had for beginner-level material. And that idea grew into this.