Мне нравится упорядочивать наборы эффектов, например, чтобы превратить List[IO[Int]]
в IO[List[Int]]
, например, так: -
scala> import cats._, cats.data._, cats.implicits._, cats.effect._
scala> val efs : List[IO[Int]] = List(IO(1),IO(2))
efs: List[cats.effect.IO[Int]] = List(IO$647684131, IO$2021068036)
scala> var efOfInts = efs.sequence
efOfInts: cats.effect.IO[List[Int]] = <function1>
scala> efOfInts.unsafeRunSync
res2: List[Int] = List(1, 2)
Но возможно ли пойти другим путем?например, чтобы превратить IO[List[Int]]
в List[IO[Int]]
?
Кажется, я не могу найти следствия для добавления sequence
в IO, так что теперь я задаюсь вопросом, нельзя ли выполнить Traverse или Sequence IO?
Кто-нибудь сделал это или знает, почемуэто не разрешено?
Спасибо.