anchor.diff:          RandomAccessList(count, shift, root, trimmedTail)
   
       member internal this.EnsureEditable() =
  -        if !root.Thread = Thread.CurrentThread then () else
  -        if !root.Thread <> null then
  +        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"
   
  
positive.code: #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)
      member this.Array = array
      member this.Thread = thread
      member this.SetThread t = thread := t
  
  type internal TransientVect<'T> (count,shift:int,root:NodeR,tail:obj[]) =
      let mutable count = count
  
negative.code:         ret.persistent()
  
      override this.GetHashCode() =
          match hashCode with
          | None ->
              let mutable hash = 1
              for x in this.rangedIterator(0,count) do
                  hash <- 31 * hash + Unchecked.hash x
              hashCode <- Some hash
              hash
          | Some hash -> hash
  
  