!7 cmodule VirtualObjectsSpike > DynPrintLog { start-thread { new VirtualObject vo; } } sclass VirtualObject { byte[] byteData; O[] pointerData; int getIntAt(int byteIdx) { ret intFromBytes(byteData, byteIdx); } byte getByteAt(int byteIdx) { ret byteData[byteIdx]; } O getPointerAt(int pointerIdx) { ret pointerData[pointerIdx]; } void setPointer(int pointerIdx, O o) { pointerData = arraySetWithExponentialGrowth(pointerData, pointerIdx, o); } }