public function times($callback)
    {
        self::mustBeCallable($callback);

        if(!$this->_decimal()->zero) {
            throw new \RuntimeException(
                'Cannot iterate given callback when number is not integer.'
            );
        }

        if($this->value == 0){
            throw new \RuntimeException(
                'Cannot iterate given callback on a void range.'
            );
        }

        if($this->value > 0){
            $arr_range = range(0, $this->value - 1);
        } else {
            $arr_range = range($this->value + 1, 0);
        }

        $a = new A();

        foreach($arr_range as $idx){
            $idx = new N($idx);
            $a->add($callback($idx));
        }

        return $a;
    }