Also it's important to note that list being the free* (and therefore initial) there is a mapping, `foldr mempty (<>)` is a mapping `[a] -> a` that is automatically a monoid homomorphism, irregardless what the monoid on `a` is.
* technically list append is also infinitely associative. I have read anyway. (When i try to use what I thinkthis means, the left associative form diverges, and the right doesn't. Which makes them non equal. So.. either my memory or my understanding is wrong. )
* the difference between foldr and foldl' only matters if the biop is non associative or you care about /how/ the value is computed.