Ah, I knew that HN would tell me what I should be reading!  I&#x27;ve only been able to spend a few minutes reading this one, but it looks to me like the first focus there is on eliminating intermediate containing structures, with some interesting opportunities for optimization afterwards.  Their stream definition of fold(l&#x2F;r) is still recursive, so I don&#x27;t think it would be able to pull, for example, the incr() outside the reduce in my first example of &quot;reduce(max, map(incr, l))&quot;
I think the approaches might be complimentary, actually; you might apply the higher level transformations I describe first and use a stream approach to implement the resulting chain of operations.
Going to need to do a deeper investigation later today, but, anything else I should be looking at?