自己实现它似乎微不足道:
implicit def s[F[_]: Monad, A: Semigroup]: Semigroup[F[A]] =
Semigroup.instance((fa, fb) => for {
fa <- fa
fb <- fb
} yield fa |+| fb)
但是有可能自动推导出来吗?Kittens似乎可以与case class
es 一起使用(至少我在这种情况下尝试过它并没有用)。
自己实现它似乎微不足道:
implicit def s[F[_]: Monad, A: Semigroup]: Semigroup[F[A]] =
Semigroup.instance((fa, fb) => for {
fa <- fa
fb <- fb
} yield fa |+| fb)
但是有可能自动推导出来吗?Kittens似乎可以与case class
es 一起使用(至少我在这种情况下尝试过它并没有用)。