public function vIntersect(Collection $other, \Closure $function = null)
    {
        if (is_null($function)) {
            return new static(\array_intersect($this->getArrayCopy(), $other->getArrayCopy()), $this->type);
        }

        return new static(\array_uintersect($this->getArrayCopy(), $other->getArrayCopy(), $function), $this->type);
    }