Module docstring
{"# Adjoining a zero/one to semigroups and related algebraic structures
This file contains different results about adjoining an element to an algebraic structure which then
behaves like a zero or a one. An example is adjoining a one to a semigroup to obtain a monoid. That
this provides an example of an adjunction is proved in
Mathlib.Algebra.Category.MonCat.Adjunctions.
Another result says that adjoining to a group an element zero gives a GroupWithZero. For more
information about these structures (which are not that standard in informal mathematics, see
Mathlib.Algebra.GroupWithZero.Basic)
TODO
WithOne.coe_mul and WithZero.coe_mul have inconsistent use of implicit parameters
"}