原です。

In message "[ruby-list:8640] Equivalence.rb"
    on 98/07/07, GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:
|ごとけんです

|      each{|i|
|	if (__dup__.include? i) && (__dup__.size > 0)
|	  __res__ |= [foo = __dup__.find_all{|j| cmp.call(i,j)}]
|	  foo.each{|i| __dup__.delete i}
|	end
|      }

ここんところは

      while i = __dup__.shift
	foo = __dup__.find_all{|j| cmp.call(i,j)}
	__res__.push foo
	__dup__ -= foo
      end

と書くのが自然では?(^^