# Semigroup
[Algebra]

Collaboration diagram for Semigroup:

## Classes

struct | mul_kind
| Empty class used as static information to denote the kind of internal operation of a semigroup. More...
struct | add_kind
| Empty class used as static information to denote the kind of internal operation of a semigroup. More...
struct | SemigroupBase< Self >
| Base class of all structures that are semigroups. More...
struct | dynamic_traits< algebra::SemigroupBase< Self > >
struct | MetaElement< algebra::SemigroupBase< Self >, T >
| Services of every element of a semigroup. More...