Added spec for Hash#reverse_each (comes from Enumerable)
Performance boost for Hash#reverse_each
Set#each returns self when called with block (to match behavior of Ruby stdlib Set#each)
Added spec for Set#reverse_each (comes from Enumerable)
Performance boost for Set#reverse_each
Hash#assoc compares keys using ==, not eql? (to match built-in Hash#assoc)
Vector#each behaves like Array#each (returns Enumerator if no block, self if block)
Performance boost for Vector#reverse_each
Added spec for Vector#reverse_each
Performance boost for Hash#slice
Removed redundant definitions of List#find_index, #index, #elem_index (now provided by Enumerable)
Hash#values returns a Vector, not List (more efficient)
Move #join to Enumerable. Respect global default separator ($,)
Hash#keys works even if Set was not required
Added Hash#flatten
Vector#delete will not be implemented (for now)

It appears there is no efficient way to implement Vector#delete.
If someone can come up with one, it can be added later.
Added Vector#each_index (to match built-in Array)