I have some functions that can return either a successful result, or an error, so I originally went with Either, but I want to accumulate the errors. So I switched to a ValidatedNel, but now I want to flatMap on that. What's the solution when you want to treat the result as a monad, but you also want to accumulate errors ?