arrow-core / arrow.core.extensions / ValidatedBitraverse / bitraverse
open fun <G, A, B, C, D> ValidatedOf<A, B>.bitraverse(AP: Applicative<G>, f: (A) -> Kind<G, C>, g: (B) -> Kind<G, D>): Kind<G, ValidatedOf<C, D>>
Do you like Arrow?