The inconsistency between operations over Arrays and Hashes isn't always = avoidable, but consider: h =3D Hash[1, 2, 3, 4, 5, 6] a =3D [1, 2, 3, 4, 5, 6] h[3] =3D> 4 h.detect{|k, v| k =3D=3D 3 } #=3D> [3, 4] a[3] #=3D> 3 a.detect{|v| v =3D=3D 3 } #=3D> 3 Surely the block passed to Array#detect should receive the index, and the result of a Hash#detect should be a value, not a [key, value] pair? I don't expect this to be changed, but perhaps it might inform proposed = changes. Clifford Heath.=20=