empty
    {{ size={($T1*)EndX - ($T1*)BeginX} }}
    
      - ($T1*)EndX - ($T1*)BeginX
 
      - ($T1*)CapacityX - ($T1*)BeginX
 
      
        ($T1*)EndX - ($T1*)BeginX
        ($T1*)BeginX
      
    
  
  
    {BeginX,s}
    BeginX,s
    
      - (char*)EndX - (char*)BeginX
 
      - (char*)CapacityX - (char*)BeginX
 
      
        (char*)EndX - (char*)BeginX
        (char*)BeginX
      
    
  
  
    {Data,[Length]s}
    Data,[Length]s
    
      - Length
 
      
        Length
        Data
      
    
  
  
    {(void*)(Value & PointerBitMask)} [{($T3)((Value >> IntShift) & IntMask)}]
    
      - ($T1*)(Value & PointerBitMask)
 
      - ($T3)((Value >> IntShift) & IntMask)
 
    
  
  
    {"$T1", s8b} {(void*)(Val.Value & Val.PointerBitMask)}
    {"$T2", s8b} {(void*)(Val.Value & Val.PointerBitMask)}
    
      ($T1)(Val.Value & Val.PointerBitMask)
      ($T2)(Val.Value & Val.PointerBitMask)
    
  
  
    {"$T1", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    {"$T2", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    {"$T3", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    
      ($T1)((Val.Val.Value >> 2) << 2)
      ($T2)((Val.Val.Value >> 2) << 2)
      ($T3)((Val.Val.Value >> 2) << 2)
    
  
  
    {"$T1", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    {"$T2", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    {"$T3", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    {"$T4", s8b} {(void*)((Val.Val.Value >> 2) << 2)}
    
      ($T1)((Val.Val.Value >> 2) << 2)
      ($T2)((Val.Val.Value >> 2) << 2)
      ($T3)((Val.Val.Value >> 2) << 2)
      ($T4)((Val.Val.Value >> 2) << 2)
    
  
  
    {{ empty }}
    {{ head={Head} }}
    
      
        Head
        Next
        this
      
    
  
  
    empty
    RefPtr [1 ref] {*Obj}
    RefPtr [{Obj->ref_cnt} refs] {*Obj}
    
      - Obj->ref_cnt
 
      Obj
    
  
  
    {{ [Small Mode] size={NumElements}, capacity={CurArraySize} }}
    {{ [Big Mode] size={NumElements}, capacity={CurArraySize} }}
    
      - NumElements
 
      - CurArraySize
 
      
        CurArraySize
        ($T1*)CurArray
      
    
  
  
    empty
    {{ size={NumEntries}, buckets={NumBuckets} }}
    
      - NumEntries
 
      - NumBuckets
 
      
        NumBuckets
        Buckets
      
    
  
  
    {{ size={NumItems}, buckets={NumBuckets} }}
    
      - NumItems
 
      - NumBuckets
 
      
        NumBuckets
        (MapEntryTy**)TheTable
      
    
  
  
    empty
    ({this+1,s}, {second})
    
      - this+1,s
 
      - second
 
    
  
  
    {Data}
  
  
  
    empty
    {*(($T1 *)(unsigned char *)storage.buffer)}
    
      - *(($T1 *)(unsigned char *)storage.buffer)