def +(other)
      if other.is_a?(Value)
        lcm_div = @div.lcm(other.div)
        Value.new((@val * (lcm_div / @div)) + (other.val * (lcm_div / other.div)), lcm_div)
      elsif other.is_a?(Numeric)
        to_f + other
      else
        raise "Unexpected argument"
      end
    end
def +(other)
      if other.is_a?(Value)
        lcm_div = @div.lcm(other.div)
        Value.new((@val * (lcm_div / @div)) + (other.val * (lcm_div / other.div)), lcm_div)
      elsif other.is_a?(Numeric)
        to_f + other
      else
        raise "Unexpected argument"
      end
    end
Construct a Value object.

 @param val [String, Integer]
   Either a String in the form "1234/100" or an integer containing the
   raw value.
 @param div [Integer]
   The divisor value to use (when +val+ is given as a Integer).
 Add to a Value object.

 @param other [Value, Numeric]

 @return [Value] Result of addition.