note this is a monoidal reducer
added a Scan based on a semigroup reducer