> That's it for the setup. The convenience methods I want to write would > accomplish those same three tasks but written like this: > > list.items[1] > > list.items.each > > list.items[1]= new_item > class T def initialize @items = [] end def items @items.dup end def []=(idx, item) @items[idx] = item end def [](idx) @items[idx] end end t = T.new t[0] = 'original1' t[1] = 'original2' puts 'before: '+t[0] t[0] = 'modified' puts 'after:' t.items.each {|elem| puts elem} Regards, Yuri Kozlov