>
> Almost no one uses #each_with_object as it is. #each_with_hash is hardly
> better. We need a short method name. Moreover I don't think this method's
> behavior is really the best approach to the real use case.
>

It's true that each_with_object doesn't seem to be used too much, but when
it is used, the object is usually a hash (for 90% of the cases in Rails, at
least.)

I think that each_with_hash should be provided for when you want to map an
enumerable onto a Hash, but I think that there should also be a 'to_h'
method on Array for when you just want to *convert* an Array into a hash.

I think 'to_h' would be most useful if it supported the behaviour of both
`Hash[ arr ]`, and 'Hash[ *arr ]'. I'm on my phone at the moment, but
here's how I could see that working:

def to_h
  if self.all? {|el| el.respond_to? :each && el.size == 2 }
    Hash[self]
  else
    Hash[*self]
  end
end

We could just let Hash[] handle any invalid input.