anchor.diff:     async {
       let fileName = if Path.GetExtension fileName = ".sketchfs" then Path.ChangeExtension (fileName, ".fsx") else fileName
       let opts = x.GetCheckerOptions(fileName, projectFilename, src, files, args)
  -    Debug.WriteLine("Parsing: Get typed parse result, fileName={0}", box fileName)
  +    Debug.WriteLine("LanguageService: Parsing: Get typed parse result, fileName={0}", box fileName)
       // Try to get recent results from the F# service
       match x.TryGetStaleTypedParseResult(fileName, opts, src, stale) with
       | Some _ as results ->
  -        Debug.WriteLine(sprintf "Parsing: using stale results")
  +        Debug.WriteLine(sprintf "LanguageService: Parsing: using stale results")
           return results
       | None -> 
  -        Debug.WriteLine(sprintf "Worker: Not using stale results - trying typecheck with timeout")
  +        Debug.WriteLine(sprintf "LanguageService: Not using stale results - trying typecheck with timeout")
           // If we didn't get a recent set of type checking results, we put in a request and wait for at most 'timeout' for a response
           return mbox.TryPostAndReply((fun reply -> (fileName, src, opts, reply)), timeout = timeout)
      }
  
positive.code:   
    /// Parses and checks the given file in the given project under the given configuration. Asynchronously
    /// returns the results of checking the file.
    member x.ParseAndCheckFileInProject(projectFilename, fileName:string, src, files, args, storeAst) = 
     async {
      let opts = x.GetCheckerOptions(fileName, projectFilename,  src, files , args)
      Debug.WriteLine(sprintf "Parsing: Trigger parse (fileName=%s)" fileName)
  
      // storeAst is passed from monodevelop when it finds files with the same name in other projects. 
      // It will then ask for a reparse of all files in the second project. If storeAst = false, do nothing. 
      if not storeAst then return ParseAndCheckResults.Empty else
      let! results = mbox.PostAndAsyncReply(fun r -> fileName, src, opts, r)
      Debug.WriteLine(sprintf "Worker: Starting background compilations")
      checker.StartBackgroundCompile(opts)
      return results
     }
  
    member x.ParseFileInProject(projectFilename, fileName:string, src, args) = 
      let opts = x.GetCheckerOptions(fileName, projectFilename, src, [| |], args)
      Debug.WriteLine(sprintf "Parsing: Get untyped parse result (fileName=%s)" fileName)
      checker.ParseFileInProject(fixFileName fileName, src, opts)
  
    member internal x.TryGetStaleTypedParseResult(fileName:string, options, src, stale)  = 
  
negative.code:         // We are in a stand-alone file or we are in a project, but currently editing a script file
          try 
            let fileName = fixFileName(fileName)
            Debug.WriteLine (sprintf "LanguageService: GetScriptCheckerOptions: Creating for stand-alone file or script: '%s'" fileName )
            let opts =
                Async.RunSynchronously (checker.GetProjectOptionsFromScript(fileName, source, fakeDateTimeRepresentingTimeLoaded projFilename),
                                        timeout = ServiceSettings.maximumTimeout)
  