Packages

trait MonoidK[F[_]] extends SemigroupK[F]

MonoidK is a universal monoid 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, and which also has an "empty" representation. Thus, MonoidK is like a Monoid for kinds (i.e. parametrized types).

A MonoidK[F] can produce a Monoid[F[A]] for any type A.

Here's how to distinguish Monoid and MonoidK:

  • Monoid[A] allows A values to be combined, and also means there is an "empty" A value that functions as an identity.
  • MonoidK[F] allows two F[A] values to be combined, for any A. It also means that for any A, there is an "empty" F[A] value. The combination operation and empty value just depend on the structure of F, but not on the structure of A.
Self Type
MonoidK[F]
Annotations
@implicitNotFound( ... ) @typeclass( ... , ... )
Source
MonoidK.scala
Linear Supertypes
SemigroupK[F], Serializable, Serializable, AnyRef, Any
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MonoidK
  2. SemigroupK
  3. Serializable
  4. Serializable
  5. AnyRef
  6. 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]

    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)
    Definition Classes
    SemigroupK
    Annotations
    @op( "<+>" , true )
  2. abstract def empty[A]: F[A]

    Given a type A, create an "empty" F[A] value.

    Given a type A, create an "empty" F[A] value.

    Example:

    scala> import cats.implicits._
    scala> MonoidK[List].empty[Long]
    res0: List[Long] = List()

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def algebra[A]: Monoid[F[A]]

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

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

    Example:

    scala> import cats.implicits._
    scala> MonoidK[List].algebra[Long].empty
    res0: List[Long] = List()
    Definition Classes
    MonoidKSemigroupK
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  7. def combineKEval[A](x: F[A], y: Eval[F[A]]): Eval[F[A]]

    Similar to combineK but uses Eval to allow for laziness in the second argument.

    Similar to combineK but uses Eval to allow for laziness in the second argument. This can allow for "short-circuiting" of computations.

    NOTE: the default implementation of combineKEval does not short-circuit computations. For data structures that can benefit from laziness, SemigroupK instances should override this method.

    In the following example, x.combineK(bomb) would result in an error, but combineKEval "short-circuits" the computation. x is Some and thus the result of bomb doesn't even need to be evaluated in order to determine that the result of combineKEval should be x.

    scala> import cats.{Eval, Later}
    scala> import cats.implicits._
    scala> val bomb: Eval[Option[Int]] = Later(sys.error("boom"))
    scala> val x: Option[Int] = Some(42)
    scala> x.combineKEval(bomb).value
    res0: Option[Int] = Some(42)
    Definition Classes
    SemigroupK
  8. def compose[G[_]]: MonoidK[[α]F[G[α]]]

    Given a kind G, create an "composed" MonoidK[F[G[_]]

    Given a kind G, create an "composed" MonoidK[F[G[_]]

    Example:

    scala> import cats.implicits._
    scala> val monoidK = MonoidK[List].compose[Option]
    scala> monoidK.combineK(List(Some(1)), List(Some(2), None))
    res0: List[Option[Int]] = List(Some(1), Some(2), None)
    Definition Classes
    MonoidKSemigroupK
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  17. def sum[A, B](fa: F[A], fb: F[B])(implicit F: Functor[F]): F[Either[A, B]]

    Combines F[A] and F[B] into a F[Either[A,B]]].

    Combines F[A] and F[B] into a F[Either[A,B]]].

    Example:

    scala> import cats.SemigroupK
    scala> import cats.data.NonEmptyList
    scala> SemigroupK[NonEmptyList].sum(NonEmptyList.one("abc"), NonEmptyList.one(2))
    res0: NonEmptyList[Either[String,Int]] = NonEmptyList(Left(abc), Right(2))
    Definition Classes
    SemigroupK
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from SemigroupK[F]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped