anchor.diff:      xSymbolUseAfterChange1.IsSome |> shouldEqual true  
       let xSymbolAfterChange1 = xSymbolUseAfterChange1.Value.Symbol
   
  -    let wholeProjectResults2AfterChange1 = checker.ParseAndCheckProject(MultiProjectDirty2.getOptions()) |> Async.RunSynchronously
  -
  +
  +    printfn "Checking project 2 after first change, options = '%A'" proj2options
       System.Threading.Thread.Sleep(1000)
  +
  +    let wholeProjectResults2AfterChange1 = checker.ParseAndCheckProject(proj2options) |> Async.RunSynchronously
  +
       count.Value |> shouldEqual 4
   
       let usesOfXSymbolInProject1AfterChange1 = 
  
positive.code: 
      //---------------- Revert the change to the file --------------------
  
      printfn "Writing old content to file '%s'" MultiProjectDirty1.fileName1
      File.WriteAllText(MultiProjectDirty1.fileName1, MultiProjectDirty1.content)
      printfn "Wrote new content to file '%s'" MultiProjectDirty1.fileName1
  
      count.Value |> shouldEqual 4
  
      let wholeProjectResults2AfterChange2 = checker.ParseAndCheckProject(MultiProjectDirty2.getOptions()) |> Async.RunSynchronously
  
      System.Threading.Thread.Sleep(1000)
      count.Value |> shouldEqual 6 // note, causes two files to be type checked, one from each project
  
negative.code: 
      printfn "Symbol found. Checking symbol uses in another project..."
  
      let proj2options = MultiProjectDirty2.getOptions()
  
      let wholeProjectResults2 = checker.ParseAndCheckProject(proj2options) |> Async.RunSynchronously
  
      count.Value |> shouldEqual 2
      
      let _ = checker.ParseAndCheckProject(proj2options) |> Async.RunSynchronously
  
      count.Value |> shouldEqual 2 // cached
  
  