anchor.diff:  #if FX_NO_THREAD
   #else
   type NodeR(thread,array:obj[]) =
  -    let thread = thread
  -    new() = NodeR(ref null,Array.create Literals2.blockSize null)
  -    static member InCurrentThread() = NodeR(ref Thread.CurrentThread,Array.create Literals2.blockSize null)
  +    let mutable thread = thread
  +    new() = NodeR(null,Array.create Literals2.blockSize null)
  +    static member InCurrentThread() = NodeR(Thread.CurrentThread,Array.create Literals2.blockSize null)
       member this.Array = array
       member this.Thread = thread
  -    member this.SetThread t = thread := t
  +    member this.SetThread t = thread <- t
   
   type internal TransientVect<'T> (count,shift:int,root:NodeR,tail:obj[]) =
       let mutable count = count
  
positive.code:         RandomAccessList(count, shift, root, trimmedTail)
  
      member internal this.EnsureEditable() =
          if !root.Thread = Thread.CurrentThread then () else
          if !root.Thread <> null then
              failwith "Transient used by non-owner thread"
          failwith "Transient used after persistent! call"
  
  
negative.code:     member this.rangedIterator<'T>(startIndex,endIndex) : 'T seq =
          if count = 0 then Seq.empty
          else
              let mutable i = endIndex - 1
              let mutable array = if (endIndex - 1) < count then this.ArrayFor i else null
  
              seq {
                  while i > (startIndex - 1) do
                      if (i + 1) % Literals2.blockSize  = 0 then
                          array <- this.ArrayFor i
  
                      yield (array).[i &&& Literals2.blockIndexMask] :?> 'T
                      i <- i - 1 
                  }
          
      member this.Cons (x : 'T) = 
  