
In my opinion (other may think differently) it is not a good idea to learn IO by starting with trying to grasp the theoretical foundation for monads. In the beginning you should just view the IO monad as Haskell's way of doing imperative IO stuff. When you feel comfortable with Haskell IO, then try to learn a couple of other monads. Then maybe this article http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html about monad transformers. It is good because it do not try to explain the implementation details of monad transformers - just how you use them. When you have done all that, then you should be ready for all the details.
Alright, this post seems interesting. Will try it out soon!
As I wrote above, I think you are trying to understand too many details at once. Also a textbook can sometimes be helpful. But you also have a learning by doing approach, which I personally find very productive.
Yeah, this has always been a problem with me. Its like browsing Wikipedia. Open an article, and you branch out like anything. Curiosity does kill the cat :(
And do not give up yet. Haskell has a lot to offer and I think it is well worth the steep learning curve.
Nope. I enjoy learning it, just waiting to hit the peak! Someone creative enough should draw the learning curve for Haskell :D. I remember some funny ones for text editors! (emacs had a spiral...)