How to convert List[Either[String, Int]] to Either[List[String], List[Int]] using a method similar to cats sequence? For example, xs.sequenc
List[Either[String, Int]]
Either[List[String], List[Int]]
xs.sequenc
Try
xs.traverse(_.toValidated.bimap(List(_), identity)).toEither // List(Left("error1"), Left("error2")) => Left(List("error1", "error2")) // List(Right(10), Right(20)) => Right(List(10, 20)) // List(Right(10), Left("error2")) => Left(List("error2"))