t

scalaz

# IsomorphismMonoid 

#### trait IsomorphismMonoid[F, G] extends Monoid[F] with IsomorphismSemigroup[F, G]

Source
Isomorphism.scala
Linear Supertypes
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. IsomorphismMonoid
2. IsomorphismSemigroup
3. Monoid
4. Semigroup
5. AnyRef
6. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Type Members

1. trait MonoidLaw extends SemigroupLaw

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`
Definition Classes
Monoid
2. trait SemigroupApply extends Apply[[α]F]
Attributes
protected[this]
Definition Classes
Semigroup
3. trait SemigroupCompose extends Compose[[α, β]F]
Attributes
protected[this]
Definition Classes
Semigroup
4. trait SemigroupLaw extends AnyRef

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.
Definition Classes
Semigroup

### Abstract Value Members

1. implicit abstract def G: Monoid[G]
2. abstract def iso: Isomorphism.<=>[F, G]
Definition Classes
IsomorphismSemigroup

### Concrete Value Members

1. final def !=(arg0: Any)
Definition Classes
AnyRef → Any
2. final def ##(): Int
Definition Classes
AnyRef → Any
3. final def ==(arg0: Any)
Definition Classes
AnyRef → Any
4. def append(f1: F, f2: ⇒ F): F

The binary operation to combine `f1` and `f2`.

The binary operation to combine `f1` and `f2`.

Implementations should not evaluate the by-name parameter `f2` if result can be determined by `f1`.

Definition Classes
IsomorphismSemigroupSemigroup
5. final def applicative: Applicative[[α]F]

A monoidal applicative functor, that implements `point` and `ap` with the operations `zero` and `append` respectively.

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.

Definition Classes
Monoid
6. final def apply: Apply[[α]F]

An scalaz.Apply, that implements `ap` with `append`.

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.

Definition Classes
Semigroup
7. final def asInstanceOf[T0]: T0
Definition Classes
Any
8. 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.

Definition Classes
Monoid
Note

`category.monoid` = `this`

9. def clone()
Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws( ... ) @native()
10. 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.

Definition Classes
Semigroup
Note

`compose.semigroup` = `this`

11. final def eq(arg0: AnyRef)
Definition Classes
AnyRef
12. def equals(arg0: Any)
Definition Classes
AnyRef → Any
13. def finalize(): Unit
Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
14. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
Annotations
@native()
15. def hashCode(): Int
Definition Classes
AnyRef → Any
Annotations
@native()
16. final def ifEmpty[B](a: F)(t: ⇒ B)(f: ⇒ B)(implicit eq: Equal[F]): B
Definition Classes
Monoid
17. final def isInstanceOf[T0]
Definition Classes
Any
18. def isMZero(a: F)(implicit eq: Equal[F])

Whether `a` == `zero`.

Whether `a` == `zero`.

Definition Classes
Monoid
19. def monoidLaw
Definition Classes
Monoid
20. val monoidSyntax: MonoidSyntax[F]
Definition Classes
Monoid
21. 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)`

Definition Classes
Monoid
22. 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

Definition Classes
Semigroup
23. final def ne(arg0: AnyRef)
Definition Classes
AnyRef
24. final def notify(): Unit
Definition Classes
AnyRef
Annotations
@native()
25. final def notifyAll(): Unit
Definition Classes
AnyRef
Annotations
@native()
26. final def onEmpty[A, B](a: F)(v: ⇒ B)(implicit eq: Equal[F], mb: Monoid[B]): B
Definition Classes
Monoid
27. final def onNotEmpty[B](a: F)(v: ⇒ B)(implicit eq: Equal[F], mb: Monoid[B]): B
Definition Classes
Monoid
28. def semigroupLaw
Definition Classes
Semigroup
29. val semigroupSyntax: SemigroupSyntax[F]
Definition Classes
Semigroup
30. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
31. def toString()
Definition Classes
AnyRef → Any
32. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
33. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
34. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... ) @native()
35. def zero: F

The identity element for `append`.

The identity element for `append`.

Definition Classes
IsomorphismMonoidMonoid