原です。

In message "[ruby-list:8650] Re: Equivalence.rb"
    on 98/07/08, Shin-ichro Hara <sinara / blade.nagaokaut.ac.jp> writes:

|ここんところは
|
|      while i = __dup__.shift
|	foo = __dup__.find_all{|j| cmp.call(i,j)}
|	__res__.push foo
|	__dup__ -= foo
|      end
|
|と書くのが自然では?(^^

あ、いけない

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

の間違いです。