def -(other)
    case other
    when ::Rational
      num = @num * other.denominator - @den * other.numerator
      den = @den * other.denominator