An abelian group is a group whose operation is commutative.
A boolean algebra is a structure that defines a few basic operations, namely as conjunction (&), disjunction (|), and negation (~).
CMonoid represents a commutative monoid.
CRig is a Rig that is commutative under multiplication.
CRing is a Ring that is commutative under multiplication.
CSemigroup represents a commutative semigroup.
A type class used to determine equality between 2 instances of the same type.
A FieldAlgebra
is a vector space that is also a Ring
.
A group is a monoid where each element has an inverse.
A simple type class for numeric types that are a subset of the reals.
This type class models a metric space V
.
A module generalizes a vector space by requiring its scalar need only form a ring, rather than a field.
A monoid is a semigroup with an identity.
This is a type class for types with n-roots.
A normed vector space is a vector space equipped with a function
norm: V => F
.
The Order
type class is used to define a total ordering on some type A
.
Rig is a ring whose additive structure doesn't have an inverse (ie.
Ring represents a set (A) that is a group over addition (+) and a monoid over multiplication (*).
A RingAlgebra
is a module that is also a Rng
.
Rng is a ring whose multiplicative structure doesn't have an identity (i.
A semigroup is any set A
with an associative operation (op
).
Semiring is a ring without identities or an inverse.
A simple ADT representing the Sign
of an object.
A trait for things that have some notion of sign and the ability to ensure something has a positive sign.
A vector space is a group V
that can be multiplied by scalars in F
that
lie in a field.
Given any Ring[A]
we can construct a RingAlgebra[A, Int]
.