Validated(Applicative)のsequence

ListのEitherのsequenceは最初のエラーだけしかかえってこない。
ListのValidatedのsequenceはすべてのエラーがかえってくる。

  val eithers: List[Either[String, Int]]          = List(Right(1), Left("error1"), Right(2), Left("error2"), Right(3))
  val validateds: List[ValidatedNel[String, Int]] = eithers.map(_.toValidatedNel)

  println(eithers.sequence)    // Left(error1)
  println(validateds.sequence) // Invalid(NonEmptyList(error1, error2))