Improving code readability in functional C# using Linq to Monad