anchor.diff:              RandomAccessList<'T>(count + 1,shift,root,newTail) 
           else
               //full tail, push into tree
  -            let tailNode = NodeR(root.Thread,tail)
  +            let tailNode = NodeR(root.ThreadId,tail)
               let newShift = shift
   
               //overflow root?
  
positive.code:             //overflow root?
              let newRoot = 
                  if (count >>> Literals2.blockSizeShift) > (1 <<< shift) then
                      let newRoot = NodeR(root.Thread,Array.create Literals2.blockSize null)
                      newRoot.Array.[0] <- root :> obj
                      newRoot.Array.[1] <- this.NewPath(shift,tailNode) :> obj
                      shift <- shift + Literals2.blockSizeShift
  
negative.code:     new() = TransientVect<'T>(0,Literals2.blockSizeShift,NodeR.InCurrentThread(),Array.create Literals2.blockSize null)
      
      member internal this.EnsureEditable(node:NodeR) =
          if node.ThreadId = root.ThreadId then node else
          NodeR(root.ThreadId,Array.copy node.Array)
  
      member internal this.NewPath(level,node:NodeR) =
          if level = 0 then node else
          let ret = Array.create Literals2.blockSize null
          ret.[0] <- this.NewPath(level - Literals2.blockSizeShift,node) :> obj
          NodeR(node.ThreadId,ret)
  
      member internal this.PushTail(level,parent:NodeR,tailnode) =
          //if parent is leaf, insert node,
  