An algebraic structure consisting of a set together with an associative binary operation, often used in functional programming for combining values.
"The addition operation forms a semigroup over the set of integers."
— @openai · February 25, 2024