 
            On 2015-02-03 at 20:51:04 +0100, davean wrote: [...]
I think the 'breakage' is mostly used as mentioning things that work on lists, while they now work on Foldable/Traversables. For example, LYAH mentions "length takes a list and returns its length, obviously.", which isn't true anymore in the strictest sense, it takes any Foldable. However, you could argue that this text is just specialization, and that it's still true. There seem to be no things that are generalized in the section about types, and soon after type classes are already introduced. Real World Haskell is slightly more "broken", for example, it lists:
ghci> :type null null :: [a] -> Bool
Which isn't true anymore, it would now give "Foldable t => t a -> Bool".
That's not worse than what RWH already does for the 'Monad m =>' generalisations: | Tip: These functions actually work for more than just I/O; they work for | any Monad. For now, wherever you see "M", just think "IO". Also, | functions that end with an underscore typically discard their | result. 2 comments So such tutorials already do lie a little bit for the sake of easing beginners in and then eventually rip the bandaids off. We shouldn't assume beginners are that dumb they can't make that leap... On a related matter, beginner books like the very popular LYAH or also the more recent "Beginning Haskell" do introduce and actually recommend the Foldable/Traversable abstraction with words like | Because there are so many data structures that work nicely with folds, | the Foldable type class was introduced. Much like Functor is for | things that can be mapped over, Foldable is for things that can be | folded up! or | As you saw in the previous chapter, lots of different algorithms can be | expressed using folds. The module Data.Foldable includes most of them, | like maximum or elem. One easy way to make your functions more general | is hiding the functions with those names from the Prelude and importing | the ones using Foldable. ...and go on to promote their use with the words | But now that you know about them, you should aim for the largest | degree of abstraction that you can achieve. So, generalisations such as Foldable/Traversable are in fact taught (and recommended) to beginners via books, and I'd even go as far as saying that those in teaching positions who withold that knowledge from their students are doing them a disservice. So, Foldable/Traversable is not going away. Its use is rather going to increase the more newcomers read those books, so we should rather embrace it to avoid sending mixed signals to newcomers... Cheers, hvr