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:             Seq.forall2 (Unchecked.equals) this y
          | _ -> false
  
      member internal this.SetHash hash = hashCode := hash; this
  
      member internal this.NewPath(level,node:NodeR) =
          if level = 0 then node else
  
negative.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"
  
  