anchor.diff:      let assertNotDisposed() =
           if disposed then  
               System.Diagnostics.Debug.Assert(false, "IncrementalBuild object has already been disposed!")
  -    let referenceCount = ref 0
  +    let mutable referenceCount = 0
   
       //----------------------------------------------------
       // START OF BUILD TASK FUNCTIONS 
  
positive.code: 
      member this.IncrementUsageCount() = 
          assertNotDisposed() 
          System.Threading.Interlocked.Increment(referenceCount) |> ignore
          { new System.IDisposable with member x.Dispose() = this.DecrementUsageCount() }
  
      member this.DecrementUsageCount() = 
          assertNotDisposed()
          System.Threading.Interlocked.Decrement(referenceCount) |> ignore
          if !referenceCount = 0 then 
                  disposed <- true
                  disposeCleanupItem()
  
      member __.IsAlive = !referenceCount > 0
  
      member __.TcConfig = tcConfig
      member __.FileParsed = fileParsed.Publish
  
negative.code:         | Some builder -> builder.IncrementUsageCount() 
          | None -> { new System.IDisposable with member __.Dispose() = () }
  
      member builder.IsBeingKeptAliveApartFromCacheEntry = (referenceCount >= 2)
  
  