On Mon, 4 Apr 2005, David A. Black wrote: > I can offer one observation that might account for some of this: > > "singleton_methods(true)" means "singleton methods on this object or, > if the object is a Class, this object and its ancestral classes." For > example: [.....] Thanks for your answer. I think I understand your point. To find out how the 4 different cases (from my earlier mail) occurs in the Ruby builting classes/modules, I looked for classes/modules with methods detected in each of the four categories. I only found two such classes/modules: File and SystemCallError. Below I have collected examples of methods introduced in each of the four cases (note that the four cases gives increasing sets of methods, so File.open is returned in *all but the first* cases, it is just *introduced* in the second case (i.e. by "singleton_methods(true)"): >> >> - methods(false) and singleton_methods(false) >> give the same result >> - File.rename - SystemCallError.=== >> - singleton_methods(true) >> gives a unique result >> - File.open - SystemCallError.exception >> - public_methods(false) >> gives a unique result >> - File.superclass - SystemCallError.new >> - methods(true) and public_methods(true) >> give the same result >> - File.name - SystemCallError.dup So the classes File and SystemCallError have methods in all categories (1-2-3-4). Among the other classes/modules, the following cases also occurs: 1-3-4 e.g. Hash 2-3-4 e.g. Bignum 3-4 e.g. String Maybe this was just a bunch of useless statistics ...., but I learned something from if myself at least :) /Johan Holmberg