CompiledMethod>>#methodNode is a conversion method and as any conversion i would prefer it be prefixed with 'as' , i.e. #asMethodNode
#stringVersion is used only in MessageTrace in my image. Concerning #stringVersion: i really don't have an idea what this stuff doing there? Why a method reference allows putting an arbitrary data (strings) there by various tools? Then maybe better call it 'annotation' , and correspondingly #defaultAnnotation, so we will know that this field used for annotations by different tools? About #isMeta and friends: they serve nothing , but introducing a lot of ad-hoc logic with code branches all over the places. We should learn how to use message dispatching better :) IMO, the 'theClass' ivar should be capable answering this message, along with #name, which gives the name of a class. Method reference in its 'theClass' ivar instead of symbol, should hold either real class object (or metaclass object), or a proxy (in same way as method reference is a proxy by itself). -- Best regards, Igor Stasenko AKA sig.