Best explained in code....

```
>> String.ancestors
=> [String, Comparable, Object, Kernel, BasicObject]
>> Comparable.ancestors
=> [Comparable]
>> Object.ancestors
=> [Object, Kernel, BasicObject]
>> Kernel.ancestors
=> [Kernel]
>> BasicObject.ancestors
=> [BasicObject]

```

So I suspect the inheritance chain is String < Object < BasicObject... and Comparable and Kernel are mixins...

Is there a function 'foobar' which can show the inheritance:

```
>> String.foobar
=> [Object, BasicObject]

```

*And if possible with the hidden metaclasses storing the singleton methods be included as well?*