boost::optional is a great utility. I find more and more uses for it everywhere. However I’ve started to realize that it is a more general tool that currently thought. I’ve been reading about Monads and looking a little at Haskell and Scala. For our purposes I like the concept that a Monad is a container or at least container like. It is a type that wraps another type. Generally there are multiple

