# Monoid
A monoid is a [[Magma]] with [[Associativity]] and [[Identity]]. In other words, a monoid is a semigroup with [[Identity]].
![[Monoids#^zm5eiz]]
Object oriented programmers should find monoids very easy to understand because they are very familiar with the concept, but under a different name. **Composite objects**, like composite commands for instance, which exist in almost every MVVM framework, **are monoids**. Consider using friendlier terms like composite, combinable, or similar, to reduce [[Cognitive Load]] when discussing monoids with object oriented programmers.