ScmClass

以下な記述が gauche.h のコメントにあります。

/*
 * An opaque pointer.  All Scheme objects are represented by
 * this type.
 */
typedef struct ScmHeaderRec *ScmObj;

/*
 * The class structure.  ScmClass is actually a subclass of ScmObj.
 */
typedef struct ScmClassRec ScmClass;

ScmClass は ScmObj のサブクラス、との事。
その所以は ScmClassRec 構造体の以下の定義。
# コメント略してます

struct ScmClassRec {
    union {
        SCM_INSTANCE_HEADER;
        double align_dummy;
    } classHdr;

SCM_INSTANCE_HEADER マクロの定義が以下で

#define SCM_INSTANCE_HEADER  ScmInstance hdr  /* for declaration */

直上に ScmInstance 型の定義があります。

/* A common header for objects whose class is defined in Scheme */
typedef struct ScmInstanceRec {
    ScmByte *tag;               /* private */
    ScmObj *slots;              /* private */
} ScmInstance;

成程。

ScmClassRec 構造体は 0.8.11 な記述と相違ない事は確認。もう少し_調べるもの_を掘ってみる方向で。