@archenoth doesn't the null problem just depend on the libraries you use tho?
like ... the good thing about the Option monad is that it allows you to create a language that doesn't have null; you can guarantee it's never going to exist
whereas if you have null *and* Option, now you never really know what you're going to get, unless you're just super disciplined about your own coding and never call any code written by someone less-disciplined than you are?