t

scalaz

# SemiLattice 

### Companion object SemiLattice

#### trait SemiLattice[F] extends Band[F]

scalaz.Band which is also commutative, i.e. A + B == B + A

Self Type
SemiLattice[F]
Source
SemiLattice.scala

scalaz.SemiLattice.SemiLatticeLaw

Linear Supertypes
Known Subclasses
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. SemiLattice
2. Band
3. Semigroup
4. AnyRef
5. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Type Members

1. trait BandLaw extends SemigroupLaw

Band instances must satisfy scalaz.Semigroup.SemigroupLaw and 1 additional law:

Band instances must satisfy scalaz.Semigroup.SemigroupLaw and 1 additional law:

• idempotency: `forall a. append(a, a) == a`
Definition Classes
Band
2. trait SemiLatticeLaw extends BandLaw
3. trait SemigroupApply extends Apply[[α]F]
Attributes
protected[this]
Definition Classes
Semigroup
4. trait SemigroupCompose extends Compose[[α, β]F]
Attributes
protected[this]
Definition Classes
Semigroup
5. 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. abstract 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
Semigroup

### 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. 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
5. final def asInstanceOf[T0]: T0
Definition Classes
Any
6. def bandLaw
Definition Classes
Band
7. val bandSyntax: BandSyntax[F]
Definition Classes
Band
8. def clone()
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@native() @throws( ... )
9. 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`

10. final def eq(arg0: AnyRef)
Definition Classes
AnyRef
11. def equals(arg0: Any)
Definition Classes
AnyRef → Any
12. def finalize(): Unit
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
13. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
Annotations
@native()
14. def hashCode(): Int
Definition Classes
AnyRef → Any
Annotations
@native()
15. final def isInstanceOf[T0]
Definition Classes
Any
16. def multiply1(value: F, n: Int): F

The default definition exploits idempotency to optimise to `O(1)`

The default definition exploits idempotency to optimise to `O(1)`

Definition Classes
BandSemigroup
17. final def ne(arg0: AnyRef)
Definition Classes
AnyRef
18. final def notify(): Unit
Definition Classes
AnyRef
Annotations
@native()
19. final def notifyAll(): Unit
Definition Classes
AnyRef
Annotations
@native()
20. def semiLatticeLaw
21. val semiLatticeSyntax
22. def semigroupLaw
Definition Classes
Semigroup
23. val semigroupSyntax: SemigroupSyntax[F]
Definition Classes
Semigroup
24. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
25. def toString()
Definition Classes
AnyRef → Any
26. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
27. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
28. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@native() @throws( ... )