- ldual'of :: Mor a -> Mor a
- ldual :: Mor a -> Mor a
- ldual'r :: Mor a -> Mor a
- rdual'of :: Mor a -> Mor a
- rdual :: Mor a -> Mor a
- rdual'r :: Mor a -> Mor a
- unit'of :: Eq a => a -> Mor a -> Mor a -> Mor a
- unit :: Mor String -> Mor String -> Mor String
- unit'r :: Mor String -> Mor String -> Mor String
- counit'of :: Eq a => a -> Mor a -> Mor a -> Mor a
- counit :: Mor String -> Mor String -> Mor String
- counit'r :: Mor String -> Mor String -> Mor String
- zigzag'rule'Left :: Rule String
- zigzag'rule'Right :: Rule String
- braid'of :: Eq a => a -> Mor a -> Mor a -> Mor a
- braid :: Mor String -> Mor String -> Mor String
- braid'r :: Mor String -> Mor String -> Mor String
- unbraid'of :: Eq a => a -> Mor a -> Mor a -> Mor a
- unbraid :: Mor String -> Mor String -> Mor String
- unbraid'r :: Mor String -> Mor String -> Mor String
- braid'rule'Iso'Left :: Rule String
- braid'rule'Iso'Right :: Rule String
- braid'rule'Nat'Left :: Rule String
- braid'rule'Nat'Right :: Rule String
- braid'rule'Hex'Braid :: Rule String
- braid'rule'Hex'Unbraid :: Rule String
- cross'rule :: Rule String
- twist'of :: Eq a => a -> Mor a -> Mor a
- twist :: Mor String -> Mor String
- twist'r :: Mor String -> Mor String
- untwist'of :: Eq a => a -> Mor a -> Mor a
- untwist :: Mor String -> Mor String
- untwist'r :: Mor String -> Mor String
- untwist'rule'Iso'Left :: Rule String
- untwist'rule'Iso'Right :: Rule String
- twist'rule'Id :: Rule String
- twist'rule'Natural :: Rule String
- twist'rule'Braid :: Rule String
- dagger'of :: Eq a => Mor a -> Mor a
- dagger :: Eq a => Mor a -> Mor a
- dagger'r :: Eq a => Mor a -> Mor a
- dagger'rule'Id :: Rule String
- dagger'rule'Cofunctor :: Rule String
- dagger'rule'Inv :: Rule String

# Duality

ldual'of :: Mor a -> Mor aSource

For given object create it's left dual: http://en.wikipedia.org/wiki/Dual_object.

rdual'of :: Mor a -> Mor aSource

For given object create it's right dual: http://en.wikipedia.org/wiki/Dual_object.

unit'of :: Eq a => a -> Mor a -> Mor a -> Mor aSource

For given dual pair of objects `(x, y)`

and name `nm`

call `unit'of nm x y`

to create named
duality unit arrow. Generates error if `(x, y)`

is not a dual pair.

unit :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in calculations.
`unit'of`

"\\eta"

unit'r :: Mor String -> Mor String -> Mor StringSource

Same as

, except that it does not check duality. For usage in
rule descriptions.
`unit'of`

"*\\eta"

counit'of :: Eq a => a -> Mor a -> Mor a -> Mor aSource

For given dual pair of objects `(x, y)`

and name `nm`

call `counit'of nm x y`

to create named
duality counit arrow. Generates error if `(x, y)`

is not a dual pair.

counit :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in calculations.
`counit'of`

"\\epsilon"

counit'r :: Mor String -> Mor String -> Mor StringSource

Same as

, except that it does not check duality. For usage in
rule descriptions.
`counit'of`

"*\\epsilon"

zigzag'rule'Left :: Rule StringSource

One of "zigzag rules" for duality.

zigzag'rule'Right :: Rule StringSource

One of "zigzag rules" for duality.

# Braiding

braid'of :: Eq a => a -> Mor a -> Mor a -> Mor aSource

For given pair of objects `(x, y)`

and name `nm`

call `braid'of nm x y`

to create named
braid arrow: http://en.wikipedia.org/wiki/Braided_monoidal_category

braid :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in calculations.
`braid'of`

"\\beta"

braid'r :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in rule descriptions.
`braid'of`

"*\\beta"

unbraid'of :: Eq a => a -> Mor a -> Mor a -> Mor aSource

For given pair of objects `(x, y)`

and name `nm`

call `unbraid'of nm x y`

to create named
unbraid arrow (inverse of braid arrow).

unbraid :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in calculations.
`unbraid'of`

"\\beta^{-1}"

unbraid'r :: Mor String -> Mor String -> Mor StringSource

Same as

, for usage in rule descriptions.
`unbraid'of`

"*\\beta^{-1}"

braid'rule'Nat'Left :: Rule StringSource

Naturality rule on the "left wire".

braid'rule'Nat'Right :: Rule StringSource

Naturality rule on the "right wire".

braid'rule'Hex'Braid :: Rule StringSource

Hexagon identity for `braid`

, strict monoidal case.

braid'rule'Hex'Unbraid :: Rule StringSource

Hexagon identity for `unbraid`

, strict monoidal case.

# Symmetry

cross'rule :: Rule StringSource

Rule for the "cross" arrow: it's simply self-inverse braid.

# Twisting

twist'of :: Eq a => a -> Mor a -> Mor aSource

For given object `x`

and name `nm`

call `twist'of nm x`

to create named
twist arrow.

twist'r :: Mor String -> Mor StringSource

Same as

, for usage in rule descriptions.
`twist'of`

"*\\theta"

untwist'of :: Eq a => a -> Mor a -> Mor aSource

For given object `x`

and name `nm`

call `untwist'of nm x`

to create named
untwist arrow.

untwist :: Mor String -> Mor StringSource

Same as

, for usage in calculations.
`untwist'of`

"\\theta^{-1}"

untwist'r :: Mor String -> Mor StringSource

Same as

, for usage in rule descriptions.
`untwist'of`

"*\\theta^{-1}"

twist'rule'Id :: Rule StringSource

Twisting tensorial Id changes nothing.

twist'rule'Natural :: Rule StringSource

Twisting naturality.

twist'rule'Braid :: Rule StringSource

Twist/braid interaction.

# Dagger

dagger'rule'Id :: Rule StringSource

As contravariant functor `dagger`

maps id's to id's.

dagger'rule'Cofunctor :: Rule StringSource

`dagger`

swaps domain and codomain.

dagger'rule'Inv :: Rule StringSource

`dagger`

involution rule.