anchor.diff:          if i >= vector.TailOff then
               let newTail = Array.copy vector.Tail
               newTail.[i &&& 0x01f] <- x :> obj
  -            transientVector(vector.Count, vector.Shift, vector.Root, newTail)
  +            TransientVector(vector.Count, vector.Shift, vector.Root, newTail)
           else
  -            transientVector(vector.Count, vector.Shift, doAssoc(vector.Shift, vector.Root, i, x), vector.Tail)
  +            TransientVector(vector.Count, vector.Shift, doAssoc(vector.Shift, vector.Root, i, x), vector.Tail)
       elif i = vector.Count then
           cons x vector
       else raise Exceptions.OutOfBounds
  
positive.code:             let newRoot = newNode()
              newRoot.[0] <- vector.Root :> obj
              newRoot.[1] <- newPath(vector.Shift,tailNode) :> obj
              transientVector<'a>(vector.Count + 1,vector.Shift + 5,newRoot,[| x |])
          else
              let newRoot = pushTail(vector,vector.Shift,vector.Root,tailNode)
              transientVector<'a>(vector.Count + 1,vector.Shift,newRoot,[| x |])
  
  
  let rec doAssoc(level,node:Node,i,x) =
  
negative.code:             i := !i + 1 
         }
  
  let toSeq (vector:TransientVector<'a>) = rangedIterator 0 vector.Count vector