Idris2Doc : Control.Category.Monoidal

Control.Category.Monoidal

(source)

Definitions

interfaceMonoidal : Homobj-> (obj->obj->obj) ->obj->Type
  A *monoidal category* is a category equipped with a binary operator
on its objects called the *tensor product* that respects its
internal structure. This operation is required to be a monoid,
that is to be associative and have an identity object (up to
isomorphism).

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

Laws:
* `assoc . assoc' = assoc' . assoc = id`
* `unitl . unitl' = unitl' . unitl = id`
* `unitr . unitr' = unitr' . unitr = id`
* `mapr unitl . assoc = mapl unitr` (triangle identity)
* `assoc . assoc = mapr assoc . assoc . mapl assoc` (pentagon identity)

Parameters: cat, ten, i
Constraints: Category cat, CatEndoBifunctor cat ten
Constructor: 
MkMonoidal

Methods:
assoc : cat (ten (tenab) c) (tena (tenbc))
  The left-biased associator. This must be the inverse of `assoc'`.
assoc' : cat (tena (tenbc)) (ten (tenab) c)
  The right-biased associator. This must be the inverse of `assoc`.
unitl : cat (tenia) a
  The left unitor.
unitl' : cata (tenia)
  The inverse of `unitl`, the left unitor.
unitr : cat (tenai) a
  The right unitor.
unitr' : cata (tenai)
  The inverse of `unitr`, the right unitor.

Implementations:
MonoidalMorphismPair ()
MonoidalMorphismEitherVoid
Monadm=>PreMonoidal (Kleislimorphismm) Pair ()
Monadm=>Monoidal (Kleislimorphismm) EitherVoid
assoc : Monoidalcatteni=>cat (ten (tenab) c) (tena (tenbc))
  The left-biased associator. This must be the inverse of `assoc'`.

Totality: total
Visibility: public export
assoc' : Monoidalcatteni=>cat (tena (tenbc)) (ten (tenab) c)
  The right-biased associator. This must be the inverse of `assoc`.

Totality: total
Visibility: public export
unitl : Monoidalcatteni=>cat (tenia) a
  The left unitor.

Totality: total
Visibility: public export
unitl' : Monoidalcatteni=>cata (tenia)
  The inverse of `unitl`, the left unitor.

Totality: total
Visibility: public export
unitr : Monoidalcatteni=>cat (tenai) a
  The right unitor.

Totality: total
Visibility: public export
unitr' : Monoidalcatteni=>cata (tenai)
  The inverse of `unitr`, the right unitor.

Totality: total
Visibility: public export
PreMonoidal : Homobj-> (obj->obj->obj) ->obj->Type
  A type synonym that can be used to mark a category as merely being
premonoidal, rather than a true monoidal category. These have the
same laws, but allow the tensor product to be a binoidal functor.

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

Totality: total
Visibility: public export
TenSeq : (obj->obj->obj) ->obj->Listobj->obj
  A *tensor product sequence*, meaning a right-associated nested
tensor product of objects. This structure is used by string
diagram notation.

Totality: total
Visibility: public export
splitAssoc : Monoidalcatteni=>cat (TenSeqteni (xs++ys)) (ten (TenSeqtenixs) (TenSeqteniys))
  Split a tensor product sequence into two by reassociating.

Totality: total
Visibility: public export
mergeAssoc : Monoidalcatteni=>cat (ten (TenSeqtenixs) (TenSeqteniys)) (TenSeqteni (xs++ys))
  Merge two tensor product sequences into one by reassociating.

Totality: total
Visibility: public export
applyAssoc : Monoidalcatteni=>cat (TenSeqteniys) (TenSeqteniys') ->cat (TenSeqteni (xs++ (ys++zs))) (TenSeqteni (xs++ (ys'++zs)))
  Apply a morphism to the middle of a tensor product sequence.

Totality: total
Visibility: public export
FuncPair : Monoidal(~~>)Pair ()
Totality: total
Visibility: public export
FuncEither : Monoidal(~~>)EitherVoid
Totality: total
Visibility: public export
MonoidalMorPair : MonoidalMorphismPair ()
Totality: total
Visibility: public export
MonoidalMorEither : MonoidalMorphismEitherVoid
Totality: total
Visibility: public export
MonoidalKleisliPair : Monadm=>PreMonoidal (Kleislimorphismm) Pair ()
  WARNING: This is a premonoidal category, not truly monoidal.

Totality: total
Visibility: public export
MonoidalKleisliEither : Monadm=>Monoidal (Kleislimorphismm) EitherVoid
Totality: total
Visibility: public export