anchor.diff:  : o> ( -- obj O: obj -- )
      o@ odrop ;
   
  +\g Duplicate topmost object
  +: odup o@ >o ;
  +
   \g Depth of object stack
   : odepth ( -- u )
      obottom otos - 1 cells / ;
  
positive.code:    sizeof here over @ cell- cell- dup allot move  \ Clone prototype data
     oarena> ;
  
  : single  parse-word (late) deactivate ;
  
  \g Runtime for cloned objects
  : doobj @r+ >o @r+ execute odrop ;
  
  \g Clone active object by sending a late CLONED message
  : clone ( "name" -- )
     create immediate late cloned ,
     does> ( O: -- obj )
     @ state @ if postpone doobj dup , then >o activate single ;
  
  \g Runtime for instance members
  : doinst @r+ o@ + >o @r+ execute odrop ;
  
  \g Instance active object as member of the previously active object
  : instance ( "name" -- )
     late cloned drop sizeof @ 
     get-current >o activate
     create immediate  sizeof @ , sizeof +!  
     deactivate
     does> @ state @ if postpone doinst dup , then o@ + >o activate single ;
  
  \g Dump object memory 
  : dump  o@ sizeof @ dump ;
  
negative.code: extended
  
  (world) +order
  : world (world) >o single ;
  previous
  
  
  \ OBJECT
  
  world extend
  
  world clone object
  \g Prototype object
  
  extended
  