Monad like programming with C#