Semigroups, specialized containers and a general map/reduce framework
https://github.com/ekmett/reducers/