def increment(index=-1)
      value = @components[index]
      raise TypeError.new "'#{value}' is not an integer" unless value.is_a? Integer

      copy = Array.new @components
      copy[index] = value + 1

      while index < copy.size && index != -1
        index += 1
        value = copy[index]
        if value.is_a? Integer
          copy[index] = 0
        end
      end

      self.class.new copy
    end
def increment(index=-1)
      value = @components[index]
      raise TypeError.new "'#{value}' is not an integer" unless value.is_a? Integer

      copy = Array.new @components
      copy[index] = value + 1

      while index < copy.size && index != -1
        index += 1
        value = copy[index]
        if value.is_a? Integer
          copy[index] = 0
        end
      end

      self.class.new copy
    end
Construction can throw ArgumentError, but does no parsing or type-conversion
 Returns a copy of the VersionCluster with the integer at the provided index incremented by one.
 Raises a TypeError if the value at that index is not an integer.