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[G]
-
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 (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
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]