maybe.{h,cc}: Maybe monad in C++