Yukihiro Matsumoto wrote:
> I like the idea.
> 
> But I'd prefer adding a new class methodfor the purpose,
> say. String#buffer(n), to adding new role to an argument by type,
> or there may be a better name.

I thought String.new(1000) would be a nice equivalent to 
Array.new(1000), since they both do essentially the same thing. But I'm 
not opposed to a separate method. I would vote for something active and 
descriptive like "allocate", but that's obviously not available. 
"buffer" isn't bad.

I like "new" best. And of course Array.new changes behavior depending on 
argument types too.

      Array.new(size=0, obj=nil)
      Array.new(array)
      Array.new(size) {|index| block }

What's good for the goose...