public function accumulate($closure = 'add')
    {
        if ($this instanceof \Iterator) {
            return new AccumulateIterator(
                $this,
                $closure instanceof \Closure ? $closure : reductions\get_reduction($closure)
            );
        }

        return null;
    }