如何将F [_]强制为Monad的实例

zer*_*ing 2 functional-programming scala scala-cats

我有以下类定义:

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
Run Code Online (Sandbox Code Playgroud)

我想强制F[_]成为的实例Monad,可以这样使用flatMap

 private def setting: ConsumerSettings[F, String, JsonDecoder] =
     discovery
       .kafkaAddr
       .flatMap.......
Run Code Online (Sandbox Code Playgroud)

如何存档?

Dmy*_*tin 8

导入语法

import cats.syntax.flatMap._
Run Code Online (Sandbox Code Playgroud)

既然cats.effect.Sync扩展了cats.Monad(和cats.FlatMap),那么您已经implicit sync: Sync[F]足够了。