The best part of the video, in my opinion, was how you revealed that C++ is like a giant state machine. I never thought of this, and this idea you presented made monads finally "click." As C++ is basically one giant state, in which it is assumed that each operation produces side effects, finally got it to fit in. My problem was that since I came from a mostly imperative background, I really didn't understand what pure really meant. If you were to ignore the current technological limitations such as division by zero, explaining what the tail of an empty list would be, etc, then there would never be a single issue arising from any operation in a pure haskell function!
Thanks again for the info, and especially for the maybe monad and C++ ideas. You guys explained it perfectly =D