渡して出来上がったモジュールオブジェクトを返してもよいですし、もしくは定義構造体そのものを返し"多段階初期化"を要求しても構いません。(すべてのメンバーを含む).モジュール定義構造体はモジュールオブジェクトを生成するのに必要なすべての情報を保持します。通常は、それぞれのモジュールごとに静的に初期化されたこの型の変数が1つだけ存在します。新しいモジュールの名前。利用して生成されます。取得できるモジュールごとのメモリ領域に保持されていることがあります。これによってモジュールは複数のサブ・インタプリターで安全に使えます。関数があればそれが呼ばれた後で解放されます。設定すると、そのモジュールはグローバルな状態を持つためにサブ・インタープリターをサポートしていないということになります。非負の値に設定すると、モジュールは再初期化でき、その状態のために必要となる追加のメモリ量を指定できるということになります。多段階初期化で必要になります。定義される、モジュールレベル関数のテーブルへのポインター。要素が終端となります。m_traverse¶GC走査がモジュールオブジェクトを走査する際に呼び出される走査関数。m_clear¶GCがこのモジュールオブジェクトをクリアーする時に呼び出されるクリアー関数。m_free¶GCがこのモジュールオブジェクトを解放するときに呼び出される関数。allocated.一段階初期化¶モジュールの初期化関数が直接モジュールオブジェクトを生成して返す場合があります。