如何找出cats.Parallel的函子?

时间:2018-11-12 23:41:31

标签: scala intellij-idea implicit scala-cats

由于IntelliJ在Cats上不能很好地发挥作用,因此有时我会明确指出代码中的类型参数,以避免出现难看的红线。例如,如果我们假设这在IO.pure(x.toString)下显示红线,

List(1, 2, 3).traverse(x => IO.pure(x.toString))

然后我可以轻松添加类型,IntelliJ很高兴:

List(1, 2, 3).traverse[IO, String](x => IO.pure(x.toString))

现在,对于parTraverse来说,由于functor参数似乎有点困难:

List(1, 2, 3).parTraverse[IO, ???, String](x => IO.pure(x.toString)) //what is ???

这里是否有办法找出F[_]参数的类型,所以我可以取悦IntelliJ,或者这是部分统一的事情,所以我注定要丑陋吗?谢谢

1 个答案:

答案 0 :(得分:2)

如果您转到scaladoc api of cats-effects,并搜索Parallel实例,它将只列出一个产生Parallel[IO, ???]的隐式方法,即{{ 1}}。因此,看来Parallel[IO, Par]应该可以解决问题:

cats.effect.IO.ioParallel