
Hi
(*) that's the main problem I see with Hutton's book http://www.cs.nott.ac.uk/~gmh/book.html : it has "Declaring types and classes" as chapter 10 (of 13 total). I think that's way off - and it leaves readers (students) with the impression that declarative programming basically deals with (functions on) lists. This may have been true in the 70s/80s (LISP, Prolog), but it certainly shouldn't be true today.
That book is about teaching Haskell, not advertising it. If I wanted to advertise how cool Haskell was, I probably wouldn't dwell on lists. But to learn Haskell, I spent the first few years doing either list processing or very simple algebraic data types, and I think it made me a better programmer as a result. If you want to program Haskell, get the basics sorted. Once you have sorted the basics of functional programming, you can move on to the Haskell specific bits. The course I learnt from at York left out things such as modules, type classes (beyond slight Eq/Ord signatures), monads, IO (other than interact) and anything not in Haskell 98. What it did cover very well was functional programming and functional reasoning. Thanks Neil