正木です。

|From: Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp>
|Subject: [ruby-math:00627] Re: int / int -> ?
|
|実際この手のオブジェクトを組み込みで持ってもいいかも。
|ただ、加法の単位元と乗法の単位元は分けた方がいいですね。

確かにその通りです。
ただ適切な名前が見付からなかったので。(UniversalUnity,VirtualUnity?)
良い名前があったら教えてください。( Null の代わりも)
とりあえずは次のようにしておきます。
----
def (Eins=[]).*(x)
  x
end
def Eins.coerce(x)
  [Eins,x]
end
def Eins.inspect
  "Eins"
end

def Null.*(x)
  Null
end

class Array
  def prod(s=Eins)
    each{|x| s*=x }
    s
  end
end
----

[ruby-math:00625] での det2 は素晴らしい idea だと思います。"/:整除"に
こだわる理由が少しだけですが分かった気がしました。しかしこういう特殊な
例のために元の det の汎用性を犠牲にするのはバランスを欠くように思います。
ここはやはり det2 が整除だけを使った方法であることをはっきりさせるため
にも、"/" ではなく整除を示す記号 div(or //) で書くべきものと思います。