From: Xavier Noria Date: 2011-04-09T09:27:51+09:00 Subject: [ruby-core:35666] caching of the ancestor chain Why does Ruby cache the ancestors chain? I mean, not why the implementation implies that, but why it works that way conceptually. I find that surprising, because classes conceptually have pointers to modules and method dispatching follows pointers. In particular you can add methods to a module after inclussion in some class that will be found by instances of such class. Is it just a by-product of the linearization of the chain with proxies that sacrifices that full dynamic metaphor for speed?