Проверка Scalaz

Я пытаюсь использовать проверку scalaz в нашем проекте и столкнулся с следующая ситуация:

def rate(username: String, params: Map[String, String]): ValidationNEL[String, Int] = {
  val voteV:Validation[String, RateVote] = validate(params, "vote") flatMap {v: String => RateVote(v)}
  val voterV:Validation[String, Sring] = validate(params, "voter")

  ... 
}

Теперь я должен вернуть ValidationNEL, содержащий возможные ошибки параметров, если таковые были, или использовать проверенные параметры для вызова метода:

storage.rate(username, voter, vote): Validation[String, Int]

Я знаю, я мог бы использовать | @ | для первой части, но этот код

(voterV.liftFailNel |@| voteV.liftFailNel) { (voter, rv) =>
  storage.rate(username, voter, rv)
}

вернет ValidationNEL [String, Validation [String, Int]] . Есть ли способ «сгладить» этот результат, чтобы получить ValidationNEL [String, Int] ?

5
задан Daniel Werner 27 November 2016 в 12:36
поделиться