Anyone trying to understand monads will inevitably run into Haskell’s IO monad, and the results are almost always the same: bewilderment, confusion, anger, and ultimately Perl.
via Monads Are Not Metaphors – Code Commit.
A thoroughly enjoyable read, recommended.