package kernel
 Alphabetic
 Public
 All
Type Members

trait
Band[A] extends Semigroup[A]
Bands are semigroups whose operation (i.e.
Bands are semigroups whose operation (i.e. combine) is also idempotent.
 trait BoundedEnumerable[A] extends PartialPreviousUpperBounded[A] with PartialNextLowerBounded[A]
 trait BoundedSemilattice[A] extends Semilattice[A] with CommutativeMonoid[A]

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.

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.

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.

sealed abstract
class
Comparison extends Product with Serializable
ADT encoding the possible results of a comparison

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
andy
are equal ifeqv(x, y)
istrue
. Moreover,eqv
should form an equivalence relation.  abstract class EqFunctions[E[T] <: Eq[T]] extends AnyRef
 trait EqToEquivConversion extends AnyRef

trait
Group[A] extends Monoid[A]
A group is a monoid where each element has an inverse.
 abstract class GroupFunctions[G[T] <: Group[T]] extends MonoidFunctions[Group]

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
andy
that are considered equivalent under the equivalence relation defined by this object,hash(x)
should equalhash(y)
.  abstract class HashFunctions[H[T] <: Hash[T]] extends EqFunctions[H]
 trait HashToHashingConversion extends AnyRef

trait
LowerBounded[A] extends AnyRef
A type class used to name the lower limit of a type.
 trait LowerBoundedEnumerable[A] extends PartialNextLowerBounded[A] with Next[A]
 trait LowerBoundedFunctions[L[T] <: LowerBounded[T]] extends AnyRef

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 haveMonoid[String]
, withcombine
as string concatenation, thenempty = ""
. 
abstract
class
MonoidFunctions[M[T] <: Monoid[T]] extends SemigroupFunctions[M]
 Annotations
 @suppressUnusedImportWarningForScalaVersionSpecific()

trait
Next[A] extends PartialNext[A]
A typeclass with an operation which returns a member which is always greater than the one supplied.

trait
Order[A] extends PartialOrder[A]
The
Order
type class is used to define a total ordering on some typeA
.The
Order
type class is used to define a total ordering on some typeA
. 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.
 abstract class OrderFunctions[O[T] <: Order[T]] extends PartialOrderFunctions[O]
 trait OrderToOrderingConversion extends AnyRef

trait
PartialNext[A] extends AnyRef
A typeclass with an operation which returns a member which is greater or
None
than the one supplied.  trait PartialNextLowerBounded[A] extends PartialPrevious[A] with PartialNext[A] with LowerBounded[A]

trait
PartialOrder[A] extends Eq[A]
The
PartialOrder
type class is used to define a partial ordering on some typeA
.The
PartialOrder
type class is used to define a partial ordering on some typeA
.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 (antisymmetry)
 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
result
note
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)
 abstract class PartialOrderFunctions[P[T] <: PartialOrder[T]] extends EqFunctions[P]
 trait PartialOrderToPartialOrderingConversion extends AnyRef

trait
PartialPrevious[A] extends AnyRef
A typeclass with an operation which returns a member which is smaller or
None
than the one supplied.  trait PartialPreviousUpperBounded[A] extends PartialPrevious[A] with PartialNext[A] with UpperBounded[A]

trait
Previous[A] extends PartialPrevious[A]
A typeclass with an operation which returns a member which is always smaller than the one supplied.

trait
Semigroup[A] extends Serializable
A semigroup is any set
A
with an associative operation (combine
).  abstract class SemigroupFunctions[S[T] <: Semigroup[T]] extends AnyRef

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.
 abstract class SemilatticeFunctions[S[T] <: Semilattice[T]] extends SemigroupFunctions[S]

trait
UnboundedEnumerable[A] extends Next[A] with Previous[A]
A typeclass which has both
previous
andnext
operations such thatnext . previous == identity
. 
trait
UpperBounded[A] extends AnyRef
A type class used to name the upper limit of a type.
 trait UpperBoundedEnumerable[A] extends PartialPreviousUpperBounded[A] with Previous[A]
 trait UpperBoundedFunctions[U[T] <: UpperBounded[T]] extends AnyRef
Value Members
 object Band extends SemigroupFunctions[Band] with Serializable
 object BoundedEnumerable
 object BoundedSemilattice extends SemilatticeFunctions[BoundedSemilattice] with Serializable
 object CommutativeGroup extends GroupFunctions[CommutativeGroup] with Serializable
 object CommutativeMonoid extends MonoidFunctions[CommutativeMonoid] with Serializable
 object CommutativeSemigroup extends SemigroupFunctions[CommutativeSemigroup] with Serializable
 object Comparison extends Serializable

object
Eq extends EqFunctions[Eq] with EqToEquivConversion with ScalaVersionSpecificOrderInstances with TupleOrderInstances with OrderInstances0 with Serializable
 Annotations
 @suppressUnusedImportWarningForScalaVersionSpecific()
 object Group extends GroupFunctions[Group] with Serializable
 object Hash extends HashFunctions[Hash] with Serializable
 object LowerBounded extends LowerBoundedFunctions[LowerBounded]
 object Monoid extends MonoidFunctions[Monoid] with Serializable
 object Order extends OrderFunctions[Order] with OrderToOrderingConversion with Serializable

object
PartialOrder extends PartialOrderFunctions[PartialOrder] with PartialOrderToPartialOrderingConversion with Serializable
 Annotations
 @suppressUnusedImportWarningForScalaVersionSpecific()
 object Semigroup extends SemigroupFunctions[Semigroup] with ScalaVersionSpecificMonoidInstances with TupleCommutativeGroupInstances with GroupInstances with Serializable
 object Semilattice extends SemilatticeFunctions[Semilattice] with Serializable
 object UpperBounded extends UpperBoundedFunctions[UpperBounded]