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