自分が自身のクラス(あるいはインスタンス)であるようなオブジェクト


Ruby では Class 。Smalltalk ではどうか。

| results |
results := OrderedCollection new.
SystemNavigation default allObjectsDo: [:obj |
   obj class == obj ifTrue: [results add: obj name]].
^ results asArray
=> #()

ありません。ただ、自身のクラスが自身のインスンタスでもあるオブジェクトは存在します。

| results |
results := OrderedCollection new.
SystemNavigation default allObjectsDo: [:obj |
   obj class class == obj ifTrue: [results add: obj name]].
^ results asArray
=> #('Metaclass class' #Metaclass)


Metaclass のクラス「Metaclass class」は、Metaclass のインスタンスでもある。逆もまたしかり。

(Metaclass) class class       == Metaclass           " => true "
(Metaclass class) class class == (Metaclass class)   " => true "