When looking at Data.Monoid, I see there are various newtype wrappers, such as All, Sum, or Product, which e
Data.Monoid
newtype
All
Sum
Product
The basic idea, I think, is that you can have something like
reduce = foldl (<>) mempty
and it'll work for any list of those wrapped things.