t

# CommutativeGroup 

### Companion object CommutativeGroup

#### trait CommutativeGroup[A] extends Group[A] with CommutativeMonoid[A]

An commutative group (also known as an abelian group) is a group whose combine operation is commutative.

Source
CommutativeGroup.scala
Linear Supertypes
Known Subclasses
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. CommutativeGroup
2. CommutativeMonoid
3. CommutativeSemigroup
4. Group
5. Monoid
6. Semigroup
7. Serializable
8. Serializable
9. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Abstract Value Members

1. abstract def combine(x: A, y: A): A

Associative operation which combines two values.

Associative operation which combines two values.

Example:

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

scala> Semigroup[String].combine("Hello ", "World!")
res0: String = Hello World!

scala> Semigroup[Option[Int]].combine(None, Some(1))
res1: Option[Int] = Some(1)```
Definition Classes
Semigroup
2. abstract def empty: A

Return the identity element for this monoid.

Return the identity element for this monoid.

Example:

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

scala> Monoid[String].empty
res0: String = ""

scala> Monoid[Int].empty
res1: Int = 0```
Definition Classes
Monoid
3. abstract def getClass(): Class[_]
Definition Classes
Any
4. abstract def inverse(a: A): A

Find the inverse of `a`.

Find the inverse of `a`.

`combine(a, inverse(a))` = `combine(inverse(a), a)` = `empty`.

Example:

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

scala> Group[Int].inverse(5)
res0: Int = -5```
Definition Classes
Group

### Concrete Value Members

1. final def !=(arg0: Any)
Definition Classes
Any
2. final def ##(): Int
Definition Classes
Any
3. final def ==(arg0: Any)
Definition Classes
Any
4. final def asInstanceOf[T0]: T0
Definition Classes
Any
5. def combineAll(as: IterableOnce[A]): A

Given a sequence of `as`, sum them using the monoid and return the total.

Given a sequence of `as`, sum them using the monoid and return the total.

Example:

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

scala> Monoid[String].combineAll(List("One ", "Two ", "Three"))
res0: String = One Two Three

scala> Monoid[String].combineAll(List.empty)
res1: String = ""```
Definition Classes
Monoid
6. def combineAllOption(as: IterableOnce[A]): Option[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```
Definition Classes
MonoidSemigroup
7. def combineN(a: A, n: Int): A

Return `a` appended to itself `n` times.

Return `a` appended to itself `n` times. If `n` is negative, then this returns `inverse(a)` appended to itself `n` times.

Definition Classes
GroupMonoidSemigroup
8. def equals(arg0: Any)
Definition Classes
Any
9. def hashCode(): Int
Definition Classes
Any
10. def intercalate(middle: 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.

Definition Classes
CommutativeSemigroupSemigroup
11. def isEmpty(a: A)(implicit ev: Eq[A])

Tests if `a` is the identity.

Tests if `a` is the identity.

Example:

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

scala> Monoid[String].isEmpty("")
res0: Boolean = true

scala> Monoid[String].isEmpty("something")
res1: Boolean = false```
Definition Classes
Monoid
12. final def isInstanceOf[T0]
Definition Classes
Any
13. def remove(a: A, b: A): A

Remove the element `b` from `a`.

Remove the element `b` from `a`.

Equivalent to `combine(a, inverse(b))`

Example:

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

scala> Group[Int].remove(5, 2)
res0: Int = 3```
Definition Classes
Group
14. def repeatedCombineN(a: A, n: Int): A

Return `a` combined with itself more than once.

Return `a` combined with itself more than once.

Attributes
protected[this]
Definition Classes
Semigroup
15. def reverse

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)

Definition Classes
CommutativeMonoidCommutativeSemigroupMonoidSemigroup
16. def toString(): String
Definition Classes
Any