Referenced in the paper panic suggested below ( <a href="https://news.ycombinator.com/item?id=11595273" rel="nofollow">https://news.ycombinator.com/item?id=11595273</a> ), and suggested to me directly by @mattcmd on twitter ( <a href="https://twitter.com/mattmcd/status/726342652845809664" rel="nofollow">https://twitter.com/mattmcd/status/726342652845809664</a> ), there is something called the "fusion property of fold," which would explain transformations I'm discussing here applied to folds (sided reduce). From the paper ( <a href="http://www.cs.nott.ac.uk/~pszgmh/fold.pdf" rel="nofollow">http://www.cs.nott.ac.uk/~pszgmh/fold.pdf</a> ), (and some minimal editorial substitution from me) we see that:<p>h(fold(g, w, l)) = fold(f, h(w), l)<p>if<p>h(g(x, y)) = f(x, h(y))<p>This is exciting because (1) it suggests the equivalent transformation for sided reduces (folds), and (2) fold is a more general operator than the others. My somewhat silly use of "hypothetical inverses" effectively just creates a goalpost to (1) constructively find the the function f, given g (or vice-versa) and (2) prove the necessary condition.<p>Very exciting.