我无法使用 cats 1.0.1 将 T 列表转换为 T 列表之一:
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]] 的表达式不符合预期的类型 FromT[Future, String, List[Int]]
遗憾的是,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