>>487
手続き型では、そういった「魔術的」なコードになる
これがオブジェクト指向だと、
・データ型はオブジェクトのクラスである
・オブジェクトに対する操作は(手続き/関数/演算子ではなく)
 メッセージ(もしくはメソッド)という識別子(セレクタ)である
から、以下のように自然なコードが書ける

class A
  def sum(other_value); ....; end
end

class B
  def sum(other_value); ....; end
end

つまり、メッセージ sum(x) をオブジェクトAが受信したのか、
それともオブジェクトBが受信したのかという違いでしかない
(>>316も参照の事)