Trait/Object

cats

SemigroupK

Related Docs: object SemigroupK | package cats

Permalink

trait SemigroupK[F[_]] extends Serializable

SemigroupK is a universal semigroup which operates on kinds.

This type class is useful when its type parameter F[_] has a structure that can be combined for any particular type. Thus, SemigroupK is like a Semigroup for kinds (i.e. parametrized types).

A SemigroupK[F] can produce a Semigroup[F[A]] for any type A.

Here's how to distinguish Semigroup and SemigroupK:

Self Type
SemigroupK[F]
Linear Supertypes
Serializable, Serializable, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SemigroupK
  2. Serializable
  3. Serializable
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def combineK[A](x: F[A], y: F[A]): F[A]

    Permalink

    Combine two F[A] values.

    Combine two F[A] values.

    Example:

    scala> import cats.implicits._
    scala> SemigroupK[List].combineK(List(1, 2), List(3, 4))
    res0: List[Int] = List(1, 2, 3, 4)
    Annotations
    @op( "<+>" , true )
  2. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. def algebra[A]: Semigroup[F[A]]

    Permalink

    Given a type A, create a concrete Semigroup[F[A]].

    Given a type A, create a concrete Semigroup[F[A]].

    Example:

    scala> import cats.implicits._
    scala> val s: Semigroup[List[Int]] = SemigroupK[List].algebra[Int]
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def compose[G[_]]: SemigroupK[[α]F[G[α]]]

    Permalink

    "Compose" with a G[_] type to form a SemigroupK for λ[α => F[G[α]]].

    "Compose" with a G[_] type to form a SemigroupK for λ[α => F[G[α]]]. Note that this universally works for any G, because the "inner" structure isn't considered when combining two instances.

    Example:

    scala> import cats.implicits._
    scala> type ListOption[A] = List[Option[A]]
    scala> val s: SemigroupK[ListOption] = SemigroupK[List].compose[Option]
    scala> s.combineK(List(Some(1), None, Some(2)), List(Some(3), None))
    res0: List[Option[Int]] = List(Some(1), None, Some(2), Some(3), None)
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  8. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  9. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  10. def toString(): String

    Permalink
    Definition Classes
    Any

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped