Like other domains semigroups and monoids are represented by records.
While it is possible to construct such a record by hand it is preferable
to have the functions
SemiGroup (see SemiGroup) or
Monoid) do this for you.
After such a record is created one can add record components. But you may not alter the values of components which are already present.
A semigroup or monoid record has the following category components.
truesince a monoid or a semigroup is a domain.
truefor monoids. The following components are the identification components of a semigroup or monoid record.
Other components which contain information about the semigroup or monoid may be present.