特異クラスの特異クラス

特異クラスの定義中にselfをグローバル変数に保存して、「特異クラスの特異クラスの…」を繰り返してみたくなりました。スーパークラスをたどるようにどこかでルートにたどり着くのでしょうか(わざとらしい問いかけ)。

class Rubyco
end

$obj = Rubyco
1.upto(5) do
  puts $obj
  class <<$obj
    $obj = self
  end
end

実行結果です。

Rubyco
#<Class:Rubyco>
#<Class:#<Class:Rubyco>>
#<Class:#<Class:#<Class:Rubyco>>>
#<Class:#<Class:#<Class:#<Class:Rubyco>>>>

いくらでもたどれそうですね。