Idris2Doc : Data.Profunctor.Costrong

Data.Profunctor.Costrong

(source)
This module defines profunctor costrength with respect to a particular
monoidal structure.

Since the homset profunctor (`Morphism`) is not costrong, very few
profunctors implement this interface.

Unlike Haskell's profunctors library, `Costrong` and `Cochoice` are here
special cases of the interface `GenCostrong`, which defines costrength with
respect to an arbitrary tensor product. When writing implementations for
a profunctor, `GenCostrong Pair` and `GenCostrong Either` should be used instead
of `Costrong` and `Cochoice` respectively.

Definitions

interfaceGenCostrong : (Type->Type->Type) -> (Type->Type->Type) ->Type
  Profunctor costrength with respect to a tensor product.

These constraints are not required by the interface, but the tensor product
`ten` is generally expected to implement `(Tensor ten i, Symmetric ten)`.

Laws:
* `costrongl = costrongr . dimap swap' swap'`
* `costrongl . dimap unitr.rightToLeft unitr.leftToRight = id`
* `costrongl . lmap (mapSnd f) = costrongl . rmap (mapSnd f)`
* `costrongr . costrongr = costrongr . dimap assocl assocr`

@ ten The tensor product of the monoidal structure

Parameters: ten, p
Constraints: Profunctor p
Methods:
costrongl : p (tenac) (tenbc) ->pab
  The left action of a costrong profunctor.
costrongr : p (tenca) (tencb) ->pab
  The right action of a costrong profunctor.

Implementations:
GenCostrongPairTagged
GenCostrongEither (Forgetr)
GenCostrongPair (Coforgetr)
GenCostrongten (GenCotambaratenp)
GenCostrongten (GenCopastrotenp)
costrongl : GenCostrongtenp=>p (tenac) (tenbc) ->pab
  The left action of a costrong profunctor.

Totality: total
Visibility: public export
costrongr : GenCostrongtenp=>p (tenca) (tencb) ->pab
  The right action of a costrong profunctor.

Totality: total
Visibility: public export
Costrong : (Type->Type->Type) ->Type
  Profunctor costrength with respect to the product (`Pair`).

Totality: total
Visibility: public export
unfirst : Costrongp=>p (a, c) (b, c) ->pab
  A special case of `costrongl` with constraint `Costrong`.
This is useful if the typechecker has trouble inferring the tensor product.

Totality: total
Visibility: public export
unsecond : Costrongp=>p (c, a) (c, b) ->pab
  A special case of `costrongr` with constraint `Costrong`.
This is useful if the typechecker has trouble inferring the tensor product.

Totality: total
Visibility: public export
Cochoice : (Type->Type->Type) ->Type
  Profunctor costrength with respect to the coproduct (`Either`).

Totality: total
Visibility: public export
unleft : Cochoicep=>p (Eitherac) (Eitherbc) ->pab
  A special case of `costrongl` with constraint `Cochoice`.
This is useful if the typechecker has trouble inferring the tensor product.

Totality: total
Visibility: public export
unright : Cochoicep=>p (Eitherca) (Eithercb) ->pab
  A special case of `costrongr` with constraint `Cochoice`.
This is useful if the typechecker has trouble inferring the tensor product.

Totality: total
Visibility: public export
dataGenCotambara : (Type->Type->Type) -> (Type->Type->Type) ->Type->Type->Type
  The comonad generated by the reflective subcategory of profunctors that
implement `GenCostrong ten`.

Totality: total
Visibility: public export
Constructor: 
MkCotambara : GenCostrongtenq=>q:->p->qab->GenCotambaratenpab

Hints:
Functor (GenCotambaratenpa)
GenCostrongten (GenCotambaratenp)
Profunctor (GenCotambaratenp)
ProfunctorAdjunction (GenCopastroten) (GenCotambaraten)
ProfunctorComonad (GenCotambaraten)
ProfunctorFunctor (GenCotambaraten)
Cotambara : (Type->Type->Type) ->Type->Type->Type
  The comonad generated by the reflective subcategory of profunctors that
implement `Costrong`.

This is a special case of `GenCotambara`.

Totality: total
Visibility: public export
CotambaraSum : (Type->Type->Type) ->Type->Type->Type
  The comonad generated by the reflective subcategory of profunctors that
implement `Cochoice`.

This is a special case of `GenCotambara`.

Totality: total
Visibility: public export
cotambara : GenCostrongtenp=>p:->q->p:->GenCotambaratenq
Totality: total
Visibility: public export
uncotambara : Tensorteni=>Profunctorq=>p:->GenCotambaratenq->p:->q
Totality: total
Visibility: public export
recordGenCopastro : (Type->Type->Type) -> (Type->Type->Type) ->Type->Type->Type
  The monad generated by the reflective subcategory of profunctors that
implement `GenCostrong ten`.

Totality: total
Visibility: public export
Constructor: 
MkCopastro : (GenCostrongtenq=>p:->q->qab) ->GenCopastrotenpab

Projection: 
.runCopastro : GenCopastrotenpab->GenCostrongtenq=>p:->q->qab

Hints:
GenCostrongten (GenCopastrotenp)
Profunctor (GenCopastrotenp)
ProfunctorAdjunction (GenCopastroten) (GenCotambaraten)
ProfunctorFunctor (GenCopastroten)
ProfunctorMonad (GenCopastroten)
.runCopastro : GenCopastrotenpab->GenCostrongtenq=>p:->q->qab
Totality: total
Visibility: public export
runCopastro : GenCopastrotenpab->GenCostrongtenq=>p:->q->qab
Totality: total
Visibility: public export
Copastro : (Type->Type->Type) ->Type->Type->Type
  The monad generated by the reflective subcategory of profunctors that
implement `Costrong`.

This is a special case of `GenCopastro`.

Totality: total
Visibility: public export
CopastroSum : (Type->Type->Type) ->Type->Type->Type
  The monad generated by the reflective subcategory of profunctors that
implement `Cochoice`.

This is a special case of `GenCopastro`.

Totality: total
Visibility: public export
copastro : GenCostrongtenq=>p:->q->GenCopastrotenp:->q
Totality: total
Visibility: public export
uncopastro : Tensorteni=>GenCopastrotenp:->q->p:->q
Totality: total
Visibility: public export