p

cats

# kernel 

Ordering
1. Alphabetic
Visibility
1. Public
2. All

### Type Members

1. trait Band[A] extends Semigroup[A]

Bands are semigroups whose operation (i.e.

Bands are semigroups whose operation (i.e. combine) is also idempotent.

2. trait BoundedSemilattice[A] extends Semilattice[A] with CommutativeMonoid[A]
3. 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.

4. trait CommutativeMonoid[A] extends Monoid[A] with CommutativeSemigroup[A]

CommutativeMonoid represents a commutative monoid.

CommutativeMonoid represents a commutative monoid.

A monoid is commutative if for all x and y, x |+| y === y |+| x.

5. trait CommutativeSemigroup[A] extends Semigroup[A]

CommutativeSemigroup represents a commutative semigroup.

CommutativeSemigroup represents a commutative semigroup.

A semigroup is commutative if for all x and y, x |+| y === y |+| x.

6. sealed abstract class Comparison extends Product with Serializable

ADT encoding the possible results of a comparison

7. trait Eq[A] extends Serializable

A type class used to determine equality between 2 instances of the same type.

A type class used to determine equality between 2 instances of the same type. Any 2 instances `x` and `y` are equal if `eqv(x, y)` is `true`. Moreover, `eqv` should form an equivalence relation.

8. abstract class EqFunctions[E[T] <: Eq[T]] extends AnyRef
9. trait EqToEquivConversion extends AnyRef
10. trait Group[A] extends Monoid[A]

A group is a monoid where each element has an inverse.

11. abstract class GroupFunctions[G[T] <: Group[T]] extends MonoidFunctions[Group]
12. trait Hash[A] extends Eq[A] with Serializable

A type class used to represent a hashing scheme for objects of a given type.

A type class used to represent a hashing scheme for objects of a given type. For any two instances `x` and `y` that are considered equivalent under the equivalence relation defined by this object, `hash(x)` should equal `hash(y)`.

13. abstract class HashFunctions[H[T] <: Hash[T]] extends EqFunctions[H]
14. trait HashToHashingConversion extends AnyRef
15. trait Monoid[A] extends Semigroup[A]

A monoid is a semigroup with an identity.

A monoid is a semigroup with an identity. A monoid is a specialization of a semigroup, so its operation must be associative. Additionally, `combine(x, empty) == combine(empty, x) == x`. For example, if we have `Monoid[String]`, with `combine` as string concatenation, then `empty = ""`.

16. abstract class MonoidFunctions[M[T] <: Monoid[T]] extends SemigroupFunctions[M]
17. trait Order[A] extends PartialOrder[A]

The `Order` type class is used to define a total ordering on some type `A`.

The `Order` type class is used to define a total ordering on some type `A`. An order is defined by a relation <=, which obeys the following laws:

- either x <= y or y <= x (totality) - if x <= y and y <= x, then x == y (antisymmetry) - if x <= y and y <= z, then x <= z (transitivity)

The truth table for compare is defined as follows:

x <= y x >= y Int true true = 0 (corresponds to x == y) true false < 0 (corresponds to x < y) false true > 0 (corresponds to x > y)

By the totality law, x <= y and y <= x cannot be both false.

18. abstract class OrderFunctions[O[T] <: Order[T]] extends PartialOrderFunctions[O]
19. trait OrderToOrderingConversion extends AnyRef
20. trait PartialOrder[A] extends Eq[A]

The `PartialOrder` type class is used to define a partial ordering on some type `A`.

The `PartialOrder` type class is used to define a partial ordering on some type `A`.

A partial order is defined by a relation <=, which obeys the following laws:

- x <= x (reflexivity) - if x <= y and y <= x, then x = y (anti-symmetry) - if x <= y and y <= z, then x <= z (transitivity)

To compute both <= and >= at the same time, we use a Double number to encode the result of the comparisons x <= y and x >= y. The truth table is defined as follows:

x <= y x >= y Double true true = 0.0 (corresponds to x = y) false false = NaN (x and y cannot be compared) true false = -1.0 (corresponds to x < y) false true = 1.0 (corresponds to x > y)

21. abstract class PartialOrderFunctions[P[T] <: PartialOrder[T]] extends EqFunctions[P]
22. trait
23. trait Semigroup[A] extends Serializable

A semigroup is any set `A` with an associative operation (`combine`).

24. abstract class SemigroupFunctions[S[T] <: Semigroup[T]] extends AnyRef
25. trait Semilattice[A] extends Band[A] with CommutativeSemigroup[A]

Semilattices are commutative semigroups whose operation (i.e.

Semilattices are commutative semigroups whose operation (i.e. combine) is also idempotent.

26. abstract class SemilatticeFunctions[S[T] <: Semilattice[T]] extends SemigroupFunctions[S]

### Value Members

1. object Band extends SemigroupFunctions[Band] with Serializable
2. object
3. object CommutativeGroup extends GroupFunctions[CommutativeGroup] with Serializable
4. object CommutativeMonoid extends MonoidFunctions[CommutativeMonoid] with Serializable
5. object
6. object Comparison extends Serializable
7. object Eq extends EqFunctions[Eq] with EqToEquivConversion with Serializable
8. object Group extends GroupFunctions[Group] with Serializable
9. object Hash extends HashFunctions[Hash] with Serializable
10. object Monoid extends MonoidFunctions[Monoid] with Serializable
11. object Order extends OrderFunctions[Order] with OrderToOrderingConversion with Serializable
12. object
13. object Semigroup extends SemigroupFunctions[Semigroup] with Serializable
14. object Semilattice extends SemilatticeFunctions[Semilattice] with Serializable