IsomorphismMonoid

trait IsomorphismMonoid[F, G] extends Monoid[F] with IsomorphismSemigroup[F, G]
trait Monoid[F]
trait Semigroup[F]
class Object
trait Matchable
class Any

Type members

Inherited classlikes

trait MonoidLaw

Monoid instances must satisfy scalaz.Semigroup.SemigroupLaw and 2 additional laws:

Monoid instances must satisfy scalaz.Semigroup.SemigroupLaw and 2 additional laws:

  • '''left identity''': forall a. append(zero, a) == a
  • '''right identity''' : forall a. append(a, zero) == a
Inherited from
Monoid

A semigroup in type F must satisfy two laws:

A semigroup in type F must satisfy two laws:

  • '''closure''': ∀ a, b in F, append(a, b) is also in F. This is enforced by the type system.
  • '''associativity''': ∀ a, b, c in F, the equation append(append(a, b), c) = append(a, append(b , c)) holds.
Inherited from
Semigroup

Value members

Concrete methods

def zero: F

Inherited methods

def append(f1: F, f2: => F): F
Inherited from
IsomorphismSemigroup
final
def applicative: Applicative[[α] =>> F]

A monoidal applicative functor, that implements point and ap with the operations zero and append respectively. Note that the type parameter α in Applicative[λ[α => F]] is discarded; it is a phantom type. As such, the functor cannot support scalaz.Bind.

A monoidal applicative functor, that implements point and ap with the operations zero and append respectively. Note that the type parameter α in Applicative[λ[α => F]] is discarded; it is a phantom type. As such, the functor cannot support scalaz.Bind.

Inherited from
Monoid
final
def apply: Apply[[α] =>> F]

An scalaz.Apply, that implements ap with append. Note that the type parameter α in Apply[λ[α => F]] is discarded; it is a phantom type. As such, the functor cannot support scalaz.Bind.

An scalaz.Apply, that implements ap with append. Note that the type parameter α in Apply[λ[α => F]] is discarded; it is a phantom type. As such, the functor cannot support scalaz.Bind.

Inherited from
Semigroup
final
def category: Category[[α, β] =>> F]

Every Monoid gives rise to a scalaz.Category, for which the type parameters are phantoms.

Every Monoid gives rise to a scalaz.Category, for which the type parameters are phantoms.

Note

category.monoid = this

Inherited from
Monoid
final
def compose: Compose[[α, β] =>> F]

Every Semigroup gives rise to a scalaz.Compose, for which the type parameters are phantoms.

Every Semigroup gives rise to a scalaz.Compose, for which the type parameters are phantoms.

Note

compose.semigroup = this

Inherited from
Semigroup
final
def ifEmpty[B](a: F)(t: => B)(f: => B)(implicit eq: Equal[F]): B
Inherited from
Monoid
def isMZero(a: F)(implicit eq: Equal[F]): Boolean

Whether a == zero.

Whether a == zero.

Inherited from
Monoid
def iso: IsoSet[F, G]
Inherited from
IsomorphismSemigroup
Inherited from
Monoid
def multiply(value: F, n: Int): F

For n = 0, zero For n = 1, append(zero, value) For n = 2, append(append(zero, value), value)

For n = 0, zero For n = 1, append(zero, value) For n = 2, append(append(zero, value), value)

Inherited from
Monoid
def multiply1(value: F, n: Int): F

For n = 0, value For n = 1, append(value, value) For n = 2, append(append(value, value), value)

For n = 0, value For n = 1, append(value, value) For n = 2, append(append(value, value), value)

The default definition uses peasant multiplication, exploiting associativity to only require O(log n) uses of append

Inherited from
Semigroup
final
def onEmpty[A, B](a: F)(v: => B)(implicit eq: Equal[F], mb: Monoid[B]): B
Inherited from
Monoid
final
def onNotEmpty[B](a: F)(v: => B)(implicit eq: Equal[F], mb: Monoid[B]): B
Inherited from
Monoid
def unfoldlSum[S](seed: S)(f: S => Maybe[(S, F)]): F
Inherited from
Monoid
def unfoldlSumOpt[S](seed: S)(f: S => Maybe[(S, F)]): Maybe[F]

Unfold seed to the left and sum using append. Semigroups with right absorbing elements may override this method to not unfold more than is necessary to determine the result.

Unfold seed to the left and sum using append. Semigroups with right absorbing elements may override this method to not unfold more than is necessary to determine the result.

Inherited from
Semigroup
def unfoldrSum[S](seed: S)(f: S => Maybe[(F, S)]): F
Inherited from
Monoid
def unfoldrSumOpt[S](seed: S)(f: S => Maybe[(F, S)]): Maybe[F]

Unfold seed to the right and sum using append. Semigroups with left absorbing elements may override this method to not unfold more than is necessary to determine the result.

Unfold seed to the right and sum using append. Semigroups with left absorbing elements may override this method to not unfold more than is necessary to determine the result.

Inherited from
Semigroup

Inherited fields

Inherited from
Monoid

Implicits

Implicits

implicit
def G: Monoid[G]