Создать Validation.valid через псевдоним типа в Cats от Scala - PullRequest
0 голосов
/ 11 марта 2019

Вот простой пример, который не скомпилирован:

import cats.data.Validated

object Ex {

  type FailSlow[A] = Validated[List[String], A]

  case class User(name: String, age: Int)

  //this works fine:
  def validBoth(name:String, age:Int):FailSlow[User] =
    Validated.valid[List[String], User](User(name,age))

  //this not working:
  def validBothNotWorking(name:String, age:Int):FailSlow[User] =
    Validated.valid[FailSlow[User]](User(name,age))
}

Кажется, я что-то упускаю из-за псевдонимов типов. Почему в первом случае это работает, а во втором - нет.

...