Thank you Erik Meijer and Matthew Podwysocki!  =).  I just began looking into F# (and even more recently, haskell) and felt like I wasn't understanding monads.  While Brian Beckman's "Don't fear the Monads" gave me a great introduction to understand monads, your example completed the understanding for me.

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