| Copyright | (C) 2014-2016 Edward Kmett | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | Edward Kmett <ekmett@gmail.com> | 
| Stability | provisional | 
| Portability | portable | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Data.Functor.Day
Description
Eitan Chatav first introduced me to this construction
The Day convolution of two covariant functors is a covariant functor.
Day convolution is usually defined in terms of contravariant functors, however, it just needs a monoidal category, and Hask^op is also monoidal.
Day convolution can be used to nicely describe monoidal functors as monoid objects w.r.t this product.
Synopsis
- data Day f g a = forall b c. Day (f b) (g c) (b -> c -> a)
 - day :: f (a -> b) -> g a -> Day f g b
 - dap :: Applicative f => Day f f a -> f a
 - assoc :: Day f (Day g h) a -> Day (Day f g) h a
 - disassoc :: Day (Day f g) h a -> Day f (Day g h) a
 - swapped :: Day f g a -> Day g f a
 - intro1 :: f a -> Day Identity f a
 - intro2 :: f a -> Day f Identity a
 - elim1 :: Functor f => Day Identity f a -> f a
 - elim2 :: Functor f => Day f Identity a -> f a
 - trans1 :: (forall x. f x -> g x) -> Day f h a -> Day g h a
 - trans2 :: (forall x. g x -> h x) -> Day f g a -> Day f h a
 - cayley :: Procompose (Cayley f p) (Cayley g q) a b -> Cayley (Day f g) (Procompose p q) a b
 - dayley :: Category p => Procompose (Cayley f p) (Cayley g p) a b -> Cayley (Day f g) p a b
 
Documentation
The Day convolution of two covariant functors.
Constructors
| forall b c. Day (f b) (g c) (b -> c -> a) | 
Instances
| Comonad f => ComonadTrans (Day f) Source # | |
Defined in Data.Functor.Day  | |
| Functor (Day f g) Source # | |
| (Applicative f, Applicative g) => Applicative (Day f g) Source # | |
| (Representable f, Representable g) => Distributive (Day f g) Source # | |
| (Representable f, Representable g) => Representable (Day f g) Source # | |
| (Comonad f, Comonad g) => Comonad (Day f g) Source # | |
| (ComonadApply f, ComonadApply g) => ComonadApply (Day f g) Source # | |
| type Rep (Day f g) Source # | |
Defined in Data.Functor.Day  | |
dap :: Applicative f => Day f f a -> f a Source #
cayley :: Procompose (Cayley f p) (Cayley g q) a b -> Cayley (Day f g) (Procompose p q) a b Source #