I'm not sure whether you are serious, cynical or tongue-in-cheek, so I feel it necessary to point out that they are not actually explaining monads. They provide an answer to the question that everyone will ask: "how do you do I/O in a language in which all computations are supposed to be free of side-effects, when I/O is obviously a side-effect?" The answer to that question is 'monads', but that's as far as they go. They don't actually explain anything about monads.