CatsMonadToSemigroup

class CatsMonadToSemigroup[F[_], A](F: Monad[F], A: Semigroup[A]) extends Semigroup[F[A]]

Given that A has a cats.Monoid implementation, this builds a Semigroup[F[A]] instance for any F[_] data type that implements cats.effect.Sync.

Given that A has a cats.Monoid implementation, this builds a Semigroup[F[A]] instance for any F[_] data type that implements cats.effect.Sync.

Used for IO.

NOTE: nothing in this implementation is specific to Monix or to cats-effect, but these instances are not provided by default by Cats for any monad, probably because they aren't useful for every monad.

trait Semigroup[F[A]]
trait Serializable
class Object
trait Matchable
class Any
class CatsMonadToMonoid[F, A]

Value members

Concrete methods

override def combine(x: F[A], y: F[A]): F[A]
Definition Classes
Semigroup

Inherited methods

def combineAllOption(as: IterableOnce[F[A]]): Option[F[A]]

Given a sequence of as, combine them and return the total.

Given a sequence of as, combine them and return the total.

If the sequence is empty, returns None. Otherwise, returns Some(total).

Example:

scala> import cats.kernel.instances.string._

scala> Semigroup[String].combineAllOption(List("One ", "Two ", "Three"))
res0: Option[String] = Some(One Two Three)

scala> Semigroup[String].combineAllOption(List.empty)
res1: Option[String] = None
Inherited from
Semigroup
def combineN(a: F[A], n: Int): F[A]

Return a combined with itself n times.

Return a combined with itself n times.

Example:

scala> import cats.kernel.instances.int._
scala> import cats.kernel.instances.string._

scala> Semigroup[Int].combineN(1, 10)
res0: Int = 10

scala> Semigroup[String].combineN("ha", 3)
res1: String = hahaha
Inherited from
Semigroup
def intercalate(middle: F[A]): Semigroup[F[A]]

Between each pair of elements insert middle This name matches the term used in Foldable and Reducible and a similar Haskell function.

Between each pair of elements insert middle This name matches the term used in Foldable and Reducible and a similar Haskell function.

Inherited from
Semigroup
def reverse: Semigroup[F[A]]

return a semigroup that reverses the order so combine(a, b) == reverse.combine(b, a)

return a semigroup that reverses the order so combine(a, b) == reverse.combine(b, a)

Inherited from
Semigroup