<div dir="ltr">-1<div><br></div><div style>I think types that lack an empty element are a misfeature.  They usually end up contaminating everything they touch, which is why semigroups forms an entire parallel ecosystem of its own.  This is a very slippery slope that won&#39;t end with the addition of `Data.Semigroup` and once it is in it will be impossible to take it out.</div>
</div>