Typeclass trait representing an algebraic structure that is a Functor[Context]
(i.e., it
declares a map
method that obeys the functor laws) augmented by insert
and applying
methods that obey laws of homomorphism and interchange.
The homomorphism law states that given a value, a
, of type A
and
a function, f
, of type A => B
(and implicit Applicative.adapters
imported):
val ca = applicative.insert(a) val cf = applicative.insert(f) ca.applying(cf) === applicative.insert(f(a))The interchange law states that given a value,
a
, of type A
and
a function, cf
, of type Context[A => B]
(and implicit Applicative.adapters
imported):
val ca = applicative.insert(a) val cg = applicative.insert((f: A => B) => f(a)) ca.applying(cf) === cf.applying(cg)
Typeclass trait representing a binary operation that obeys the associative law.
Typeclass trait representing a binary operation that obeys the commutative law.
Typeclass trait representing two binary operations that obeys the distributive law:
one, dcombine
that does the distributing, and the other combine
binary combine that dcombine is applied to.
Typeclass trait representing an algebraic structure defined by a map
method that
obeys laws of identity and composition.
Typeclass trait for algebraic structure containing insertion and flat-mapping methods that obey laws of identity and associativity.
Typeclass trait representing a binary operation that obeys the associative law and an identity element that obeys the left and right identity laws.
Companion object for trait Applicative
.
Companion object for Associative
.
Companion object for Commutative
.
Companion object for Distributive
.
Companion object for trait Functor
.
Companion object for Monad
typeclass.
Companion object for trait Monoid
.