monoid

An operator * and a value x form a monoid if * is associative and x is its left and right identity.