Thu Apr 4 12:00:11 EDT 2013

Fold or map-reduce?

Wait... the current approach is already generic.  Just replace the
accumulator with the fold body.  The trouble is that this should
probably not be something like '+' but 'parallel +'.

A general fold body is (s,i)->s For a "parallel +", the arity of i is
the same as s.  In general this is not the case.

Still there doesn't seem to be a way to find the arity without running
the function, so maybe that should be done first.

Arity comes from the 'values' part, so maybe this is enough.  Let's
just try it out.

This is map - reduce: separate out the parallel part and the
accumulation part.  Depending on the properties of associativity of
the accumulator, more things are possible.

How to test associativity?

Conclusion: got it +- working, but there are a couple of issues.
- Fold arity : now it takes 2x the map arity
- Performing data-dependent iteration?
- Lifting

This needs a lot of work, probably a week full-time.  Don't have that
right now.