>>493
class Integer
  def sum(y); self + y.to_i; end
  def to_i; self; end
  def to_f; Convert.integer_to_float(self); end
end

class Float
  class sum(y); self + y.to_f; end
  def to_i; Convert.float_to_integer(self); end
  def to_f; self; end
end

aFloat.sum aCat # ==> モジュール Convert でTypeErrorを検出
aDrink.sum aIceCream # ==> クラス Drink におけるsumの定義に従う