From: Xavier Noria Date: 2011-04-09T09:40:59+09:00 Subject: [ruby-core:35667] Re: caching of the ancestor chain Ah, in case it is not clear, where I find the metaphor broken is in that you can add methods to a mixin and have them available in classes that already included it, but if you include a new ancestor, then method dispatch in classes that already included the module aren't aware of the new chain. Conceptually, in my view, you are augmenting the module either way, and a method dispatch that followed really dynamically the pointers of the ancestor chain at the time of the call would find the methds no matter how you augment the mixin. So I wonder whether this is a design sacrifice for optimization purposes.