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.