Idris2Doc : Control.Category.Functor

Control.Category.Functor

(source)

Definitions

interfaceCatFunctor : Homobj->Homobj'-> (obj->obj') ->Type
  A *functor* is a mapping between categories that preserves their
structure. Generally, `cat` and `cat'` are categories, though
this is not enforced by the interface.

This is the interface-style definition of a functor. For the
record-style definition, see `Control.Category.Records.FunctorR`.

Laws (when `cat`, `cat'` are categories):
* `map id = id`
* `map f . map g = map (f . g)`

Parameters: cat, cat', f
Constructor: 
MkCatFunctor

Methods:
map : catab->cat' (fa) (fb)
  Apply the functor to a morphism in `cat`, translating it into `cat'`.

Implementations:
CatMonadcatm->CatFunctorcatcatm
StrongFunctorcattenf->CatFunctorcatcatf
map : CatFunctorcatcat'f=>catab->cat' (fa) (fb)
  Apply the functor to a morphism in `cat`, translating it into `cat'`.

Totality: total
Visibility: public export
CatEndofunctor : Homobj-> (obj->obj) ->Type
  A type synonym for an *endofunctor*, a functor from a category to
itself.

This is the interface-style definition of an endofunctor. For the
record-style definition, see `Control.Category.Records.EndofunctorR`.

Totality: total
Visibility: public export
map' : CatEndofunctorcatf=>catab->cat (fa) (fb)
  A synonym of `map` that only works for endofunctors. May help
typechecking and interface resolution.

Totality: total
Visibility: public export
interfaceCatBifunctor : HomobjA->HomobjB->Homobj'-> (objA->objB->obj') ->Type
  A *bifunctor* is a binary functor, i.e. a functor that maps two
categories to one. Generally, `catA`, `catB` and `cat'` are
categories, though this is not enforced by the interface.

This is the interface-style definition of a bifunctor. For the
record-style definition, see `Control.Category.Records.BifunctorR`.

Laws (when `catA`, `catB`, `cat'` are categories):
* `bimap id id = id`
* `bimap f f' . bimap g g' = bimap (f . g) (f' . g')`

Parameters: catA, catB, cat', f
Constructor: 
MkCatBifunctor

Methods:
bimap : catAab->catBa'b'->cat' (faa') (fbb')
  Apply the bifunctor to morphism in `catA` and `catB`, translating
them into a combined morphism in `cat'`.

Implementations:
CatEndoBifunctorMorphismPair
CatEndoBifunctorMorphismEither
Applicativem=>EndoBinoidal (Kleislimorphismm) Pair
Applicativem=>CatEndoBifunctor (Kleislimorphismm) Either
bimap : CatBifunctorcatAcatBcat'f=>catAab->catBa'b'->cat' (faa') (fbb')
  Apply the bifunctor to morphism in `catA` and `catB`, translating
them into a combined morphism in `cat'`.

Totality: total
Visibility: public export
Binoidal : HomobjA->HomobjB->Homobj'-> (objA->objB->obj') ->Type
  A type synonym that can be used to mark an operator as merely being
a binoidal functor, rather than a proper bifunctor. These have the
same data, but weaker laws.

See https://github.com/tokinanpa/cats-and-arrows/tree/main/docs/CategoricalSins.md
for more information on when/why this matters.

Laws for a binoidal functor:
* `bimap id id = id`
* `bimap id f . bimap id g = bimap id (f . g)`
* `bimap f id . bimap g id = bimap (f . g) id`
* `bimap f g = bimap id g . bimap f id` (NOTE: order matters here)

Totality: total
Visibility: public export
mapl : CatBifunctorcatAcatBcat'f=>CategorycatB=>catAab->cat' (fac) (fbc)
  Apply a morphism to a bifunctor only on the left.

Totality: total
Visibility: public export
mapr : CatBifunctorcatAcatBcat'f=>CategorycatA=>catBab->cat' (fca) (fcb)
  Apply a morphism to a bifunctor only on the right.

Totality: total
Visibility: public export
CatEndoBifunctor : Homobj-> (obj->obj->obj) ->Type
  A type synonym for an *endo-bifunctor*, a bifunctor from a category
to itself.

This is the interface-style definition of an endo-bifunctor. For the
record-style definition, see `Control.Category.Records.EndoBifunctorR`.

Totality: total
Visibility: public export
EndoBinoidal : Homobj-> (obj->obj->obj) ->Type
  See `Binoidal`.

Totality: total
Visibility: public export
bimap' : CatEndoBifunctorcatf=>catab->cata'b'->cat (faa') (fbb')
  A synonym of `bimap` that only works for endo-bifunctors. May help
typechecking and interface resolution.

Totality: total
Visibility: public export
mapl' : CatEndoBifunctorcatf=>Categorycat=>catab->cat (fac) (fbc)
  A synonym of `mapl` that only works for endo-bifunctors. May help
typechecking and interface resolution.

Totality: total
Visibility: public export
mapr' : CatEndoBifunctorcatf=>Categorycat=>catab->cat (fca) (fcb)
  A synonym of `mapr` that only works for endo-bifunctors. May help
typechecking and interface resolution.

Totality: total
Visibility: public export
CatBifunctorMorPair : CatEndoBifunctorMorphismPair
Totality: total
Visibility: public export
CatBifunctorMorEither : CatEndoBifunctorMorphismEither
Totality: total
Visibility: public export
CatBifunctorKleisliPair : Applicativem=>EndoBinoidal (Kleislimorphismm) Pair
  WARNING: This is a binoidal functor, not a true bifunctor.

Totality: total
Visibility: public export
CatBifunctorKleisliEither : Applicativem=>CatEndoBifunctor (Kleislimorphismm) Either
Totality: total
Visibility: public export