Nick Coghlan wrote:
I don't think it would actually be that much worse - something like typetools.ProxyMixin would just involve a whole series of register calls instead of method definitions. I wouldn't expect the total amount of code involved to change much.
I'm not thinking about the __xxx__ methods, they're an aberration. I'm thinking about all the user-defined methods and attributes that get caught in one go by the __getattr__ method of the proxy.
That said, a recursive flatten() implementation is indeed a problem that generic functions are well suited to solving
Yes, I agree with that. It was just something I thought of that shows that generic functions and OO are not quite equivalent in general.