由于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,或者这是部分统一的事情,所以我注定要丑陋吗?谢谢
答案 0 :(得分:2)
如果您转到scaladoc api of cats-effects,并搜索Parallel
实例,它将只列出一个产生Parallel[IO, ???]
的隐式方法,即{{ 1}}。因此,看来Parallel[IO, Par]
应该可以解决问题:
cats.effect.IO.ioParallel