Let's be honest. This is a bad book. When it is good, it is great, but when it is bad, the badness assumes epic and monumental proportions. Any book with a chapter as disastrous as chapter 10 simply needs to be called a bad book.
If you buy this book (and you should), you should realize that this is a lot like buying a car with a broken transmission with the understanding that you are going to learn a lot repairing it. These notes are intended to help.
The book is available online. Some people say that the online version corrects a lot of significant errata, but I have not found this to be true. What I have found somewhat useful in the online copy are the reader contributed comments.
Bear in mind that this book was published in 2008 and used an older version of Haskell. The book is in dire need of a revision and (quite frankly) a total rewrite. Perhaps when they do so, they will incorporate suggestions from this page and others. Or maybe they will just turn their back on it and abandon it as a bad job and move on.
The name of the book is itself misleading. I had assumed that this was an advanced book dealing with "real world" topics, whatever they might be. It is not. It is (or is intended to be) a ground up introduction to the language, using some real world examples for illustration.
Here is my play by play on various chapters:
The beauty of this book is not in introducing fundamental Haskell concepts. This book is valuable for the case studies and examples of Haskell at work. People have complained about the authors using a JSON parser as an example. Such people probably should not be trying to learn Haskell.
The authors are smart and sensible people with a lot of experience. Some of their side comments and big picture views of code development are the real value of the book. I am surprised that with three smart authors, a chapter like chapter 10 would ever have made it to print.
Tom's Computer Info / [email protected]