原です。

>まつもと ゆきひろです
>
>In message "[ruby-list:33736] Redefinition of builtin class"
>     on 02/02/04, Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:
>
>|昔は、例えば Integer に foo を定義するには、
>|
>|   class Integer < Numeric
>|     def foo; 1; end
>|   end
>|
>|とスーパークラスまで書かないといけなかったと記憶してるんですが、
>
>そうだったっけ? 「指定したら一致してないといけない」という
>ルールは作った覚えがあるんですが。

そういう憶えが確かにあるんですが、手元の 1.6.4, 1.6.5 では、
「指定したら一致してないといけない」ですね。

>|今(1.6.6)では、
>|
>|   class Integer < Numeric
>|     def foo; 1; end
>|   end
>|   p 0.respond_to? :foo #=> false
>|
>|で、warning: already initialized constant Integer も出ますね。
>|これって仕様変更?
>
>これはバグです。現状では「指定したら別物」という挙動になって
>ますね。さっそく直します。

そうですか。基本的には指定しない訳ですね。