To clarify when you ask about multiple concurrent validations I assume you do not mean parallel. In that case I believe the system presented is the concurrent solution.
The final paragraph in which we use a `ValidationResult` will indeed collect all the failed validation errors from every leaf node (specifying which leaf node the error is for is not defined in the article but was implemented in the production system). Parallelism would require IO and is not used here though it would be fairly simple to add.
What we could do is when we run the validations on both sides an `and_` or an `or_` we can run them in parallel and combine the results. This approach should then run all of the leaves in parallel and then combine them together, I am not sure that it would speed anything up though and might even slow it down(unless the validations are effectful).
I hope that was clear, but if not let me know.