Curious: what is the reason for going with reduce instead forEach?
Obvious reason is to have me do brain-twisting, with quite some success ;)
I would have written it like this, what is wrong with that?
```
        var diffMap = {}
        return keys.forEach(function(funcName) {
            var oldValue = oldSummary[funcName](),
                newValue = newSummary[funcName]();

            if (oldValue !== newValue) {
                diffMap[funcName] = newValue;
            }
        });
        return diffMap;
```