anchor.diff:  \g Dump object memory 
   \ : dump  o@ sizeof @ dump ;
   
  -\g Print attribute
  -: .attr ( "attr" -- )
  -   odepth 1- spaces @r+ dup xt>name .name ." member at " 
  -   execute dup 16 based . ." : " @ . cr ;
  +: .mbr ( nfa -- )
  +   ." member at " slotaddr dup 16 based . ." : " @ . cr ;
  +
  +: .ins ( nfa -- )
  +   slotaddr
  +   ." instance at " dup . cr
  +   >o (extend) late print extended ;
  +
  +: .slot ( nfa -- )
  +   odepth 1- spaces  dup .name dup mbr? if .mbr else .ins then ;
   
   \g Print object
   : print
  -   odepth 2 - spaces ." object at " o@ 16 based . ." :" cr .attr sizeof ;
  +   odepth 2 - spaces ." object at " o@ 16 based . ." sized " sizeof @ . cr
  +   ['] .slot forslots ;
   
   extended
   
  
positive.code: world clone object
  \g Prototype object
  
  extended
  
negative.code: \ Current object: topmost object in object stack
  \ Active object: object that will receive subsequent messages
  
  \ Create the bootstrap world, just a wordlist and a sizeof field 
  \ in the object arena
  :noname owordlist 3 cells o, ; execute constant (world)
  
  
  \ Push the bootstrap world to the object and order stacks and establish it as 
  \ current worldist, making it the active object
  (world) >o o@ +order definitions
  
  \ Add current object to order stack and set it as current wordlist
  : (extend) ( O: obj -- obj )
     o@ +order definitions ;
  
  \ Remove active object from the order stack and restore previously
  \ current wordlist
  : (extended)  previous definitions ;
  
  \g Make current object the active object
  