p

cats

kernel

package 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 Group [A] extends Monoid[A]

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

  10. abstract class GroupFunctions [G[T] <: Group[T]] extends MonoidFunctions[Group]
  11. 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 = "".

  12. abstract class MonoidFunctions [M[T] <: Monoid[T]] extends SemigroupFunctions[M]
  13. 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.

  14. abstract class OrderFunctions [O[T] <: Order[T]] extends PartialOrderFunctions[O]
  15. 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)

  16. abstract class PartialOrderFunctions [P[T] <: PartialOrder[T]] extends EqFunctions[P]
  17. trait Semigroup [A] extends Serializable

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

  18. abstract class SemigroupFunctions [S[T] <: Semigroup[T]] extends AnyRef
  19. 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.

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

Ungrouped