> The source itself, especially object.c and class.c would help you.
> It describes everything, including bugs. ;-)
>
> Seriously, there's no other document (yet), and README.EXT gives you
> almost all you need to know to read the source.
>
> matz.
>
>

OK so lets be more specific:
from Init_Object in object.c (best read under fixed width font)
       /*
         *
         * Ruby's Class Hierarchy Chart
         *
         *                           +------------------+
         *                           |                  |
         *             Object---->(Object)              |
         *              ^  ^        ^  ^                |
         *              |  |        |  |                |
         *              |  |  +-----+  +---------+      |
         *              |  |  |                  |      |
         *              |  +-----------+         |      |
         *              |     |        |         |      |
         *       +------+     |     Module--->(Module)  |
         *       |            |        ^         ^      |
         *  OtherClass-->(OtherClass)  |         |      |
         *                             |         |      |
         *                           Class---->(Class)  |
         *                             ^                |
         *                             |                |
         *                             +----------------+
         *
         *   + All metaclasses are instances of the class `Class'.
         */


    now here are the questions:
    which are the classes and the metaclasses (what is the significance of
the parenthesis)?
    What really confuses me is that I don't understand why there are two
class instances for each
    of this core class:
    rb_cObject-->rb_singleton_class_new(rb_cClass)
    rb_cModule-->rb_singleton_class_new(rb_singleton_class_new(rb_cClass))

rb_cClass-->rb_singleton_class_new(rb_singleton_class_new(rb_singleton_class
_new(rb_cClass)))

    And why not
    rb_cObject-->rb_singleton_class_new(rb_cClass)
    rb_cModule-->rb_singleton_class_new(rb_cClass)
    rb_cClass-->rb_singleton_class_new(rb_cClass)

    So can you just point me to the part in object.c and class.c which makes
use of the class
    attached with rb_singleton_class_attached.
    Benoit
    PS:
    in any case I'll continue to read the source and I'll find out, its just
that I'd like it to
    go faster.