In Java, for example, every object has a method called getClass() which returns
a reference to an instance of the class Class. This Class instance describes
the class of the original object. Since this Class instance is a normal
object it also has the getClass() method. Calling this method on the
Class instance returns another Class instance describing Class. This is
where the meta-regress actually stops. Calling getMethod() on the Class
instance describing Class returns the same object; that is, for any object o,
o.getClass().getClass() == o.getClass().getClass().getClass() is
always true.