Covariant Day Convolution
Based on Edward Kmett implementation in Haskell: https://hackage.haskell.org/package/kan-extensions/docs/Data-Functor-Day.html
Day convolution is a special form of Functor multiplication. In monoidal category of endofunctors Applicative is a monoid object when Day covolution is used as tensor. If we use Functor composition as tensor then then monoid form a Monad instead of Applicative.
Can be seen as generalization of method apply2 from Apply:
def apply2(fa => F[A], fb => F[B])(f: (A, B) => C): F[C]
trait Day[F[_], G[_], A] { self =>
// ...
val fx: F[X]
val gy: G[Y]
def xya: (X, Y) => A
}
- See also
- Companion
- object
Value members
Concrete methods
Apply a natural transformation to the left-hand side of a Day convolution.
Apply a natural transformation to the left-hand side of a Day convolution.