原です。

>ごとけんです

>ぼくは何らかの零は必要だと考えますし、ruby-talkでも同様の意
>見は複数ありました。具体的には、一意性を期待するために定数で
>あることが望ましいでしょう。しかし、未定義のモノを参照する可
>能性もあるので、ユーザには定数である零を返すクラスメソッド
>zeroも提供したほうが良いと思います。これは、mixinで
>
>   self.type::ZERO
>
>などと書かなくてすむようにするためです。また、zeroのクラスは、

私も、まさにこの「self.type::Zero」というのが、多用されそうな
局面に出くわしたので、クラスメソッドは必要と感じたのでした。

>ただUnitは実数というよりは群論的な要素なので、必ずしも必要で
>はないでしょう。実用上はむしろsuccやpredのために必要なことが
>多いかと思います。

いけがみさんも[ruby-math:00418]で言ってるように、加法で必要なら
乗法でも必要でしょう。もう一つ児玉さんが[ruby-math:00425]で言っ
てるように、現在のところ、キツク問題になるのは「除法」です。例え
ば調和平均を与えるモジュールを考えると

module Math
   def harmonic_mean(a, b)
     2/(1/a + 1/b)
   end
   module_function :harmonic_mean
end

これでは Math.harmonic_mean(2, 3) はエラーになります。ここでは 1 
を Float.unit(Float::Unit) か Rational.unit (Rational::Unit)
等で指定されるべきでしょう。

また、モジュールを Mix-in することを考えると、一つクラスメソッドでは
なく、単なるメソッドとしてあっても合理的だと思います。

module Math
   def harmonic_mean(b)
     2/(unit/self + unit/b)
   end
end

と書けてもいいのではないか?よって私は、定数、クラスメソッド、メソッド
を用意し、ひな形として Numeric で定義しておけばいいのでは?というのを
提案します。