Re: do_something -- so what if do_something doesn't take arguments? This is starting to sound like the confusing situation Perl has with its optional parens (one of the top-ten all time warts of that language :)

Re: subclassing -- it sounds like you want to change a builtin type globally - an idea that makes me weak at the knees. 

What's to stop some little 3rd-party library you're using (or hell, even a less-experienced co-worker) from altering the behaviour of one of the standard methods of list() so it's slightly different?

Weak at the knees, I tell you! :)
