Существует 2 local
метода, определенного как:
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))
}
Второй метод должен использоваться как фабричный метод для построения Клейсли.
Можете ли вы предложить какие-либо варианты использования второго метода, определенного в KleisliFunctions
, для создания экземпляра Kleisli. С примером, если это возможно. Не могу получить его, где этот метод может быть полезен.