if you use cats you can follow the examples at https://typelevel.org/cats/typeclasses/parallel.html#parallel
basically you write your validation functions to produce
Either. but you "glue together" those functions to act using
Validated, which then gets converted back to
Either at the end
mapNfrom cats. it's like a mode: you switch from fail-fast (flatMap via Either) to collect-errors (mapN via Validated), and back.
val res63: scala.collection.WithFilter[Int, List] = ...to be correct
mapNalso does it.
[A]Foo[Int, String, A]- on this post about partial unification, so I guess it does have a specific meaning that I'm not familiar with