Quick reply to just one point (more later, I hope):
Also, do these books have good coverage of things like existential types, functional dependencies, other experimental-but-apparently-crucial features that are hard to find documentation for?
I consider myself a fairly hardcore Haskell user (I used to be a language designer and compiler/library developer but now I work on another language and write my tools in Haskell and perl). Despite this, I don't think I use any of the features you list (I guess I'm suggesting that these might not be the most important to you either). I do use the IO monad, IORefs (sparingly), constructor classes, lots of libraries, the foreign function interface (lets you call C and C++), parser generators (happy) and parser combinators, exception handling and concurrency (even just the lame non-preemptive version that Hugs provides). Of course, this partly reflects the kinds of programs I write and, to some extent, my being comfortable with the features and libraries I know and not having time to really explore what I can do with the other features. -- Alastair Reid reid@cs.utah.edu http://www.cs.utah.edu/~reid/