# File lib/core/facets/enumerable/accumulate.rb, line 52
  def accumulate_all(iterations=1)
    return self if iterations == 0
    Functor.new do |op, *args|
      result = inject([]) { |a, x| a << x.send(op, *args) }.flatten
      result.accumulate_all(iterations - 1)
    end
  end