使用猫列出[EitherT [Future,A,B]]到EitherT [Future,A,List [B]]

时间:2018-01-20 17:55:31

标签: scala scala-cats

我无法使用猫1.0.1将EitherT列表转换为EitherT列表:

import cats.implicits._

val list: List[EitherT[Future, String, Int]] = List(1.pure, 2.pure)
val eitherOfList : EitherT[Future, String, List[Int]] = list.sequence

错误是:Nothing [List [Nothing]]类型的表达式不符合预期类型EitherT [Future,String,List [Int]]

1 个答案:

答案 0 :(得分:3)

可悲的是,scala类型推断并不是那么好,因此在使用pure语法时,您必须对代码进行注释。

type Stack[A] = EitherT[Future, String, A]

val list: List[Stack[Int]] = List(1.pure[Stack], 2.pure[Stack])
val eitherOfList: Stack[List[Int]] = list.sequence