A few weeks ago, following up on a post by Clint Moore, I wrote on Google+ that we should start an intermediate Haskell book as a community. The reaction was very positive, and it seems like something people are really looking forward to both working on and benefiting from. I started a Github repo and added a README describing the project.
There are still some questions about both what the content of such a book would be, and the writing style. To hopefully kickstart some discussion of the matter, I put together three sample chapters:
I specifically chose these three topics, as I think they cover the three main types of content we want in this book: recommended libraries, the language itself, and practices surrounding the language.
At this point, I would like to ask the community to tear these chapters apart as much as possible. Not so much for the technical content, but for the teaching approach. Should the filehash example have started with the "wrong way," or jumped straight to the correct approach? Should the typeclass chapter follow motivating examples, or describe the features first? Should the tools chapter walk the user through typical usage scenarios, or simply state the purpose of each tool?
I really believe that as a community we can produce a top-notch book that will make it easier for Haskellers to move from novice to advanced.
Also, I think Mezzo Haskell is a good codename for the book: it makes clear that this is an intermediate book, covering neither the basics nor the truly advanced concepts. But I'm not opposed to either giving the book a longer title, or replacing that name entirely.