anchor.diff:  
       member x.GetAllUsesOfAllSymbolsInFile() =
         async {
  -          match infoOpt with
  -          | None -> return None
  -          | Some (checkResults, _parseResults) ->
  -              let! allSymbols = checkResults.GetAllUsesOfAllSymbolsInFile()
  -              return Some allSymbols
  +        match infoOpt with
  +        | None -> return None
  +        | Some (checkResults, _parseResults) ->
  +            let! allSymbols = checkResults.GetAllUsesOfAllSymbolsInFile()
  +            return Some allSymbols
         }
   
       member x.PartialAssemblySignature =
         async {
  -          match infoOpt with
  -          | None -> return None
  -          | Some (checkResults, _parseResults) ->
  -              return Some checkResults.PartialAssemblySignature
  +        match infoOpt with
  +        | None -> return None
  +        | Some (checkResults, _parseResults) ->
  +          return Some checkResults.PartialAssemblySignature
         }
   
       member x.GetErrors() =
  -        match infoOpt with 
  -        | None -> None
  -        | Some (checkResults, _parseResults) -> Some checkResults.Errors
  +      match infoOpt with 
  +      | None -> None
  +      | Some (checkResults, _parseResults) -> Some checkResults.Errors
   
       member x.GetNavigationItems() =
  -        match infoOpt with 
  -        | None -> [| |]
  -        | Some (_checkResults, parseResults) -> 
  -           // GetNavigationItems is not 100% solid and throws occasional exceptions
  -            try parseResults.GetNavigationItems().Declarations
  -            with _ -> 
  -                Debug.Assert(false, "couldn't update navigation items, ignoring")  
  -                [| |]
  +      match infoOpt with 
  +      | None -> [| |]
  +      | Some (_checkResults, parseResults) -> 
  +         // GetNavigationItems is not 100% solid and throws occasional exceptions
  +          try parseResults.GetNavigationItems().Declarations
  +          with _ -> 
  +            Debug.Assert(false, "couldn't update navigation items, ignoring")  
  +            [| |]
   
       member x.ParseTree = 
  -        match infoOpt with
  -        | Some (_checkResults,parseResults) -> parseResults.ParseTree
  -        | None -> None
  +      match infoOpt with
  +      | Some (_checkResults,parseResults) -> parseResults.ParseTree
  +      | None -> None
   
       member x.CheckResults = 
  -        match infoOpt with
  -        | Some (checkResults,_parseResults) -> checkResults |> Some
  -        | None -> None
  +      match infoOpt with
  +      | Some (checkResults,_parseResults) -> checkResults |> Some
  +      | None -> None
   
       member x.GetExtraColorizations() =
  -        match infoOpt with
  -        | Some(checkResults,_parseResults) -> checkResults.GetExtraColorizationsAlternate() |> Some
  -        | None -> None
  +      match infoOpt with
  +      | Some(checkResults,_parseResults) -> checkResults.GetExtraColorizationsAlternate() |> Some
  +      | None -> None
   
   [<RequireQualifiedAccess>]
   type AllowStaleResults = 
  -    // Allow checker results where the source doesn't even match
  -    | MatchingFileName
  -    // Allow checker results where the source matches but where the background builder may not have caught up yet after some other change
  -    | MatchingSource
  -    // Don't allow stale results
  -    | No
  +  // Allow checker results where the source doesn't even match
  +  | MatchingFileName
  +  // Allow checker results where the source matches but where the background builder may not have caught up yet after some other change
  +  | MatchingSource
  +  // Don't allow stale results
  +  | No
  +
  +type Debug = System.Console
   
   /// Provides functionality for working with the F# interactive checker running in background
   type LanguageService(dirtyNotify) =
  
positive.code:   /// Constructs options for the interactive checker for a project under the given configuration. 
    member x.GetProjectCheckerOptions(projFilename, ?properties) =
      let properties = defaultArg properties ["Configuration", "Debug"]
      match projectInfoCache.TryGetValue ( (projFilename, properties) ) with
      | true, p -> 
          Debug.WriteLine (sprintf "LanguageService: GetProjectCheckerOptions: Getting ProjectOptions from cache for %s" projFilename )
          p
      | false, _ -> lock projectInfoCache (fun () ->
                    //let pfi = FSharpProjectFileInfo.Parse(projFilename, properties, true)
                    //printfn "FSharpProjectFileInfo.Parse \n%s" pfi.LogOutput
                    Debug.WriteLine (sprintf "LanguageService: GetProjectCheckerOptions: Generating ProjectOptions for %s" <| Path.GetFileName(projFilename) )
                    let opts = checker.GetProjectOptionsFromProjectFile(projFilename, properties)
                    projectInfoCache.[(projFilename, properties)] <- opts
                    opts)
      // Print contents of check option for debugging purposes
      // Debug.WriteLine(sprintf "GetProjectCheckerOptions: ProjectFileName: %s, ProjectFileNames: %A, ProjectOptions: %A, IsIncompleteTypeCheckEnvironment: %A, UseScriptResolutionRules: %A" 
      //                      opts.ProjectFileName opts.ProjectFileNames opts.ProjectOptions opts.IsIncompleteTypeCheckEnvironment opts.UseScriptResolutionRules)
  
negative.code:   //   (c) only one request is active at a time, the rest are in the queue
  
    let mbox = MailboxProcessor.Start(fun mbox ->
      async { 
         while true do
              try
  