Sure, and what I want to avoid is having a requirement of the JVMS (not
even the JVM!) turn into a user-visible artifact. Having a public class
whose spec says "I exist entirely for the implementation of X" seems
likely to be distracting.
Does it have to be nominal? Can we say "`new j/l/Object` puts a
reference to a new instance of a direct identity subclass of Object with
no methods or fields on the top of the stack"?
Yes, this is all good from the language perspective. The outstanding bit is "what does the
instruction 'new java/lang/Object' do?" The simple thing is for JVMS to say "an instance
of java/lang/SimpleIdentityObject is created on the heap".
If the class is private, the JVM implementation still knows what it is, so
that's probably okay, but what does JVMS say? I don't want to phrase it in a
way that, say, lets a JVM implementation interpret 'new java/lang/Object' as
'new java/lang/String' or something stupid like that.