Scala Cats: как мне преобразовать List[ValidatedNel[E, A]] в Ior[NonEmptyList[E], List[A]]?

Я старался:

def convert[E, A](in: List[ValidatedNel[E, A]]): Ior[NonEmptyList[E], List[A]] =
    in.separate

Я получил:

could not find implicit value for parameter G: cats.Bifoldable[cats.data.ValidatedNel]
[error]     in.separate

Затем я попробовал что-то вроде этого:

  def convert[E, A](in: List[ValidatedNel[E, A]]): Ior[NonEmptyList[E], List[A]] =
    in.traverse(_.toIor)

Теперь я получил:

 could not find implicit value for evidence parameter of type cats.Applicative[G]
[error]     in.traverse(_.toIor)

person pathikrit    schedule 11.12.2018    source источник
comment
Должны ли вы включить частичную унификацию, чтобы позволить scalac вывести G?   -  person Toxaris    schedule 12.12.2018
comment
Да, это было так. Спасибо!   -  person pathikrit    schedule 12.12.2018


Ответы (1)


Как упоминал @Toxaris, -Ypartial-unification нужно было включить

person pathikrit    schedule 11.12.2018