Typeclassopedia — a generic response

February 17, 2009

Thanks for all the fantastic feedback on the Typeclassopedia! Please keep it coming!

Such an outpouring of helpful comments and suggestions deserves a response, so I just wanted to write a quick note to say that I am reading every piece of feedback—whether here, on haskell-cafe, in #haskell, or on reddit—and fully intend to respond to each as appropriate. However, I probably won’t get around to it for a week or so, as at the moment I am focusing on digging myself out from all the other obligations that piled up while I was finishing the first draft. In the meantime, please keep sending me your suggestions!

However, there is one common suggestion I’ve received that I’d like to respond to now, which is that the Typeclassopedia should be put into wiki form. There are two main reasons I am submitting it for publication in the Monad.Reader, instead of creating it as a wiki in the first place:

  1. There is something about the permanence and elegance of a finely typeset, well-edited publication that a collection of wiki pages cannot capture. This isn’t just an issue of presentation; it also affects the content: writing for the Monad.Reader means that my writing and presentation are better than if I had created pages on a wiki.
  2. The Monad.Reader has a deadline; creating a wiki does not. Without a deadline, I probably never would have finished.

With that said, I think wikifying it after publication is a fantastic idea, and I hope that someone will take the initiative to do this. The Monad.Reader publishes all the source for each issue under a BSD license, so I don’t think this should be a problem.


The Typeclassopedia — request for feedback

February 16, 2009

I have just submitted a draft article for inclusion in the Monad.Reader entitled “The Typeclassopedia”. I will let the abstract speak for itself:

The standard Haskell libraries feature a number of type classes with algebraic or categorical underpinnings. Becoming a fluent Haskell hacker requires intimate familiarity with them all, yet acquiring this familiarity often involves combing through a mountain of tutorials, blog posts, mailing list archives, and IRC logs.

The goal of this article is to serve as a starting point for the student of Haskell wishing to gain a firm grasp of its standard type classes. The essentials of each type class are introduced, with examples, commentary, and extensive references for further reading.

I would love feedback from anyone, from the newest newb to the expertest expert, who would be kind enough to take a look. Particular types of feedback I would appreciate include:

  • Are there parts that are confusing or could be worded more clearly?
  • Are there parts that are stated incorrectly?
  • Do you know of any additional references that could be included?

I am looking for more references for Foldable, Traversable, and Comonad in particular, so if you know of any good resources/examples/papers related to any of those, please let me know.

At 48 pages and 110 citations, the article is rather hefty, so I certainly don’t expect most people to read through all of it anytime soon—but even if you only take a look at a section or two about which you are particularly interested and/or knowledgeable, your feedback would be greatly appreciated! I hope that this can become a valuable reference for the Haskell community.

Edit, 16 March 2009: a revised and updated version of the Typeclassopedia has now been published in the Monad.Reader.