Idris2Doc : Control.Category.Cartesian

Control.Category.Cartesian

(source)

Definitions

interfaceCartesian : Homobj-> (obj->obj->obj) ->obj->Type
  A monoidal category is *cartesian* if its tensor product coincides
with the categorical product. This automatically implies that it
is symmetric (see `Braided`).

This interface may be implemented in two equivalent ways: by giving
a categorical product structure (`projl`, `projr`, `prod`) or a
universal comonoid structure (`split`, `elim`). Each set of
methods has a default definition in terms of the others.

This is the interface-style definition of a cartesian monoidal category.
For the record-style definition, see `Control.Category.Records.CartesianR`.

Laws for `projl`, `projr`, `prod`:
* `projl . prod f g = f`
* `projr . prod f g = g`

Laws for `split`, `elim`:
* `unitl . mapl elim . split = id`
* `unitr . mapr elim . split = id`

Parameters: cat, ten, i
Constraints: Monoidal cat ten i
Constructor: 
MkCartesian

Methods:
projl : cat (tenab) a
  The left projection of the product.
projr : cat (tenab) b
  The right projection of the product.
prod : catab->catab'->cata (tenbb')
  The universal property of the product.
split : cata (tenaa)
  The cojoin of the universal comonoid structure.
elim : catai
  The counit of the universal comonoid structure.

Implementations:
CartesianMorphismPair ()
Monadm=>PreCartesian (Kleislimorphismm) Pair ()
projl : Cartesiancatteni=>cat (tenab) a
  The left projection of the product.

Totality: total
Visibility: public export
projr : Cartesiancatteni=>cat (tenab) b
  The right projection of the product.

Totality: total
Visibility: public export
prod : Cartesiancatteni=>catab->catab'->cata (tenbb')
  The universal property of the product.

Totality: total
Visibility: public export
split : Cartesiancatteni=>cata (tenaa)
  The cojoin of the universal comonoid structure.

Totality: total
Visibility: public export
elim : Cartesiancatteni=>catai
  The counit of the universal comonoid structure.

Totality: total
Visibility: public export
(&&&) : Cartesiancatteni=>catab->catab'->cata (tenbb')
  An operator synonym for `prod`, the universal property of a
cartesian monoidal category's product structure.

Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 7
PreCartesian : Homobj-> (obj->obj->obj) ->obj->Type
  See `PreMonoidal`.

Totality: total
Visibility: public export
proj : Cartesiancatteni=> (x : Fin (lengthxs)) ->cat (TenSeqtenixs) (index'xsx)
  Project a single value out of a tensor product sequence by index.

Totality: total
Visibility: public export
Swizzle : Nat->Type
  A compact representation of a function out of a tensor product
sequence of size `n`. Used to rearrange/"swizzle" tensor products.

Totality: total
Visibility: public export
swizzleList : (xs : Lista) ->Swizzle (lengthxs) ->Lista
  Apply a `Swizzle` to a list, rearranging its elements.

Totality: total
Visibility: public export
swizzle : Cartesiancatteni=> (sw : Swizzle (lengthxs)) ->cat (TenSeqtenixs) (TenSeqteni (swizzleListxssw))
  Apply a `Swizzle` to a tensor product sequence.

Totality: total
Visibility: public export
PreCartesianKleisliPair : Monadm=>PreCartesian (Kleislimorphismm) Pair ()
  WARNING: This is a premonoidal category, not truly monoidal.

Totality: total
Visibility: public export