- class Multiplicative r => InvolutiveMultiplication r where
- adjoint :: r -> r

- class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r
- class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a where
- inv :: (a -> r) -> a -> r

- class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c where
- coinv :: (c -> r) -> c -> r

- class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h
- class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r
- class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a
- class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a
- class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h

# Involution

class Multiplicative r => InvolutiveMultiplication r whereSource

An semigroup with involution

adjoint a * adjoint b = adjoint (b * a)

class (Semiring r, InvolutiveMultiplication r) => InvolutiveSemiring r Source

adjoint (x + y) = adjoint x + adjoint y

# Involutive Algebras

class (InvolutiveSemiring r, Algebra r a) => InvolutiveAlgebra r a whereSource

class (InvolutiveSemiring r, Coalgebra r c) => InvolutiveCoalgebra r c whereSource

class (Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h Source

(Bialgebra r h, InvolutiveAlgebra r h, InvolutiveCoalgebra r h) => InvolutiveBialgebra r h |

# Trivial Involution

class (Commutative r, InvolutiveMultiplication r) => TriviallyInvolutive r Source

adjoint = id

class (CommutativeAlgebra r a, TriviallyInvolutive r, InvolutiveAlgebra r a) => TriviallyInvolutiveAlgebra r a Source

(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveAlgebra r () | |

(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b) => TriviallyInvolutiveAlgebra r (a, b) | |

(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c) => TriviallyInvolutiveAlgebra r (a, b, c) | |

(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d) => TriviallyInvolutiveAlgebra r (a, b, c, d) | |

(TriviallyInvolutiveAlgebra r a, TriviallyInvolutiveAlgebra r b, TriviallyInvolutiveAlgebra r c, TriviallyInvolutiveAlgebra r d, TriviallyInvolutiveAlgebra r e) => TriviallyInvolutiveAlgebra r (a, b, c, d, e) |

class (CocommutativeCoalgebra r a, TriviallyInvolutive r, InvolutiveCoalgebra r a) => TriviallyInvolutiveCoalgebra r a Source

(TriviallyInvolutive r, InvolutiveSemiring r) => TriviallyInvolutiveCoalgebra r () | |

(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b) => TriviallyInvolutiveCoalgebra r (a, b) | |

(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c) => TriviallyInvolutiveCoalgebra r (a, b, c) | |

(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d) => TriviallyInvolutiveCoalgebra r (a, b, c, d) | |

(TriviallyInvolutiveCoalgebra r a, TriviallyInvolutiveCoalgebra r b, TriviallyInvolutiveCoalgebra r c, TriviallyInvolutiveCoalgebra r d, TriviallyInvolutiveCoalgebra r e) => TriviallyInvolutiveCoalgebra r (a, b, c, d, e) |

class (InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h Source

(InvolutiveBialgebra r h, TriviallyInvolutiveAlgebra r h, TriviallyInvolutiveCoalgebra r h) => TriviallyInvolutiveBialgebra r h |