what about if attr_accessor :foo defined three methods - #foo, #foo=, and #set_foo. let #foo= behave special to preseve the a = b = 1 syntax, and let #set_foo behave OO'ishly and return self. the set_* syntax is common in other OO worlds, and so wouldn't be too surprising. - martin chase