pointer tags -
  bit 0
  0 - object
  1 - integer

object header -
  bit 0: GC mark bit
  bit 1: weak reference bit
  bits 2..23: identity hash
  bits 24..31: object size, in words

object format -
  0: object header
  4: pointer to map
  *: optional extended object size, in bytes (if object size in header is 16rFF)
  8: slot value pointer 0
  8+4*N: slot value pointer N
  - slot values are at offsets specified by the map

role entry format - 
  0: pointer to slot name
  4: role position
  8: pointer to method

slot entry format -
  0: pointer to slot name
  4: slot offset

map format -
  0: object header
  4: pointer to representative object
  8: number of delegation slots
  12: number of data slots
  16: pointer to array of method dependencies
  20: oldest generation of weak references 
  24: dispatch id, 64 bits
  32: visited position mask
  36: pointer to array of slot entries
  40: pointer to array of role entries
  - slot/role entries are hashed, power-of-2 hash table size

method format additions -
  0: dispatch id, 64 bits
  8: dispatch position mask
  12: found roles position mask
  16: dispatch rank

