有2local
种方法定义为:
final case class Kleisli[F[_], A, B](run: A => F[B]) { self =>
...
def local[AA](f: AA => A): Kleisli[F, AA, B] =
Kleisli(f.andThen(run))
...
}
并作为:
sealed private[data] trait KleisliFunctions {
...
def local[M[_], A, R](f: R => R)(fa: Kleisli[M, R, A]): Kleisli[M, R, A] =
Kleisli(f.andThen(fa.run))
}
第二个应该用作工厂方法来构建 Kleisli。
您能否提供任何用例来使用中定义的第二种方法KleisliFunctions
来创建 Kleisli 的实例。如果可能的话,举个例子。无法得到它,这种方法可能有用。