>>7Haskell's basic abstractions, most of Typeclassopedia, are worthy enough to learn Haskell
From my wasted youth being enamored with Haskell, I remember the holy trinity of typeclasses: functor, applicative and monad. I also remember monoids (trivial) and arrows. See, the problem with all these "abstractions" is that the set of properties of algorithms and datastructures they abstract and give a name to (or "reify") are not an intensionally (and this is important) strong signal to programmers. So, for example, while there is something in common between continuations and non deterministic computation, and this can be abstracted, it is not a good idea to do so because this commonality is noise, not information, with regards to facts about the specific problem and it's solution, whatever it is.
Looking for these sorts of incidental commonalities everywhere, reifying them, and then using them to obscure programs by giving poor names to things is not good programming.
We've had this problem before, with the whole patterns bullshit.