原です。

>正木です。

>原さんの立場では、有理整数環と有理数体では、"/" の結果は違うわけ
>ですから、false でなかったらかえって困るのでは?
>1234567890/7 #=> 176366841
>Rational(1234567890)/7) #=> Rational(1234567890,7)

これって、

   1 == Rational(1)

なのに、

   1 / 2 != Rational(1) / 2

なのは変じゃないかってことですよね。
これには説得力を感じるなあ。

しかし、Ruby の Integer は、有理数に包含される整数を表してい
るだけではなくて、ループカウンタや配列のインデックスのような、
プログラミング上のツールとしての側面もあるわけですよ。それを
数クラスとして辻褄を合わせるために coerce システムがある、と。
そして、この現状はそんなに悪いものでもない、と思うのです。