Given a  hash, h1, will the following always hold?

  keys, values = h1.keys, h1.values
  h2 = Hash.make (keys,values)         # Hash::make is user defined
  h1 == h2

More than equality, I'm interested in the sequence of values returned by
Hash#keys and Hash#values. Is this sequence deterministic and the same?  Is
this order the same as that obtained when one #inspects a hash? Simple
testing seems to indicate so.

Thanks,
Raja

p.s. is there a way to override a class method like Hash.new -without-
sub-classing?  It appears that class methods can't be aliased hence
redefinition of something like Hash.new doesn't seem possible?