I'm a mathematician who decided Haskell would be a good language in which to perform my latest computing task, so I looked around for learning materials. After going through some web tutorials and starting into _Real World Haskell_, I decided that maybe I should try something more basic and systematic, so I read Hutton's book. I'm glad I did, and I think I understand Haskell much better now than I did before.
The form factor of this book is really odd, essentially that of a thick magazine, like _Wired_. It has huge outer margins, with the text compressed into the middle in tiny-looking 9-point type. Thankfully, the printing is crisp, so the text is fairly readable. Choosing to set the code samples in a proportional font seems like a curious choice, especially for Haskell, where spacing matters. For a computing book, the writing is very elegant, although the organization is somewhat less systematic than I was expecting.
The most questionable aspect of this book is its audience. Ostensibly, it is written for a first university course for students with "[n]o previous programming experience", but I'm not sure how good of a fit it would be, especially for a typical U.S. student. Concepts like pointers, parsers, stacks, and compilers seem to be mentioned with the idea that readers would already know what those are. The examples in the book are largely drawn from Hutton's professional publications in functional programming. To me, these were interesting, but it's not clear how much new students would appreciate them. Contrast that with the fact that mathematical induction is discussed at length as if the reader might be unaware of it, and on page 147 the reader is referred back to a previous derivation for justification of the FOIL formula from basic algebra! The selection of exercises seemed kind of sparse for a textbook.
_Programming in Haskell_ is a quick read, and (if you can afford it) is probably a good stepping stone on the way to being a good Haskell programmer.