Experiments with Monads in C#