In the last installment of this series, we had a look at one of the most primitive type classes, the semigroup. Today we add one nifty feature to it, namely the notion of an identity element zero
:
trait Monoid[A] extends Semigroup {
def zero : A
}