Я читаю эту статью
http://typelevel.org/cats/datatypes/validated.html
В нем говорится, что Validated можно использовать для последовательной проверки с использованием метода andThen. Это означает, что мы останавливаемся на первой ошибке и не собираем все ошибки.
Я пробовал следующий код
@ val x = 123.valid[String]
x: Validated[String, Int] = Valid(123)
@ val y = "foo".invalid[Int]
y: Validated[String, Int] = Invalid("foo")
@ x andThen y
cmd4.sc:1: type mismatch;
found : cats.data.Validated[String,Int]
required: Int => cats.data.Validated[?,?]
val res4 = x andThen y
^
Купить почему несовпадение типов. Как видите, x и y имеют одинаковую форму.
Изменить: обратите внимание, что я не хочу собирать все ошибки. Это я мог легко сделать с x |@| y
. Я подтвердил и хочу обрабатывать их последовательно.