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=