Numeric

リテラルの符号は、単項演算子 `-', `+' のメソッド呼び出しでは ありません。

class Fixnum
  def -@
    "negative #{self}"
  end
end

p -10   # => -10

n = 10
p -n    # => "negative 10"

この違いは結合強度にも影響します。

p -10.abs   # => 10

n = 10
p -n.abs    # => -10