如何强制 F[_] 成为 Monad 的实例
How to enforce F[_] to be an instance of Monad
我有以下 class 定义:
final case class Creator[F[_]](topic: String, discovery: ServiceDiscovery[F])
(implicit sync: Sync[F]) {
import JsonDeserializer._
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
我想强制 F[_]
成为 Monad
的实例,我可以像这样使用 flatMap
:
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
.flatMap.......
如何存档?
导入语法
import cats.syntax.flatMap._
因为 cats.effect.Sync
扩展了 cats.Monad
(和 cats.FlatMap
)并且你有 implicit sync: Sync[F]
这应该足够了。
我有以下 class 定义:
final case class Creator[F[_]](topic: String, discovery: ServiceDiscovery[F])
(implicit sync: Sync[F]) {
import JsonDeserializer._
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
我想强制 F[_]
成为 Monad
的实例,我可以像这样使用 flatMap
:
private def setting: ConsumerSettings[F, String, JsonDecoder] =
discovery
.kafkaAddr
.flatMap.......
如何存档?
导入语法
import cats.syntax.flatMap._
因为 cats.effect.Sync
扩展了 cats.Monad
(和 cats.FlatMap
)并且你有 implicit sync: Sync[F]
这应该足够了。