Option monad in C#