anchor.diff:            if opts.OtherOptions |> Seq.exists (fun s -> s.Contains("FSharp.Core.dll")) then opts
             else 
               // Add assemblies that may be missing in the standard assembly resolution
  -            Debug.WriteLine("GetScriptCheckerOptions: Adding missing core assemblies.")
  +            Debug.WriteLine("LanguageService: GetScriptCheckerOptions: Adding missing core assemblies.")
               let dirs = FSharpEnvironment.getDefaultDirectories (None, FSharpTargetFramework.NET_4_5 )
               {opts with OtherOptions = [| yield! opts.OtherOptions
                                            match FSharpEnvironment.resolveAssembly dirs "FSharp.Core" with
                                            | Some fn -> yield sprintf "-r:%s" fn
  -                                         | None -> Debug.WriteLine("Resolution: FSharp.Core assembly resolution failed!")
  +                                         | None -> Debug.WriteLine("LanguageService: Resolution: FSharp.Core assembly resolution failed!")
                                            match FSharpEnvironment.resolveAssembly dirs "FSharp.Compiler.Interactive.Settings" with
                                            | Some fn -> yield sprintf "-r:%s" fn
  -                                         | None -> Debug.WriteLine("Resolution: FSharp.Compiler.Interactive.Settings assembly resolution failed!") |]}
  +                                         | None -> Debug.WriteLine("LanguageService: Resolution: FSharp.Compiler.Interactive.Settings assembly resolution failed!") |]}
           with e -> failwithf "Exception when getting check options for '%s'\n.Details: %A" fileName e
   
       // Print contents of check option for debugging purposes
  
positive.code:    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)
      // 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")
          return results
      | None -> 
          Debug.WriteLine(sprintf "Worker: 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)
     }
  
negative.code:     async { 
         while true do
              try
                Debug.WriteLine("LanguageService agent: Awaiting request") 
                let! (fileName, source, options, reply: AsyncReplyChannel<_> ) = mbox.Receive()
  
                Debug.WriteLine("LanguageService agent: Dequeued request {0} remaining", mbox.CurrentQueueLength) 
                let fileName = fixFileName(fileName)
  
                Debug.WriteLine("LanguageService agent: start parsing - {0}", box fileName)
                let! parseResults = checker.ParseFileInProject(fileName, source, options)
                Debug.WriteLine("LanguageService agent: parse completed")
  
                Debug.WriteLine("LanguageService agent: Typecheck source...")
                let! checkAnswer = checker.CheckFileInProject(parseResults, fileName, 0, source,options, IsResultObsolete(fun () -> false), null )
                Debug.WriteLine(sprintf "LanguageService agent: Typecheck completed")
                
                // Construct new typed parse result if the task succeeded
                let results =
                  match checkAnswer with
                  | FSharpCheckFileAnswer.Succeeded(checkResults) ->
                      Debug.WriteLine(sprintf "LanguageService agent: Update typed info - HasFullTypeCheckInfo? %b" checkResults.HasFullTypeCheckInfo)
                      ParseAndCheckResults(checkResults, parseResults)
                  | _ -> 
                      Debug.WriteLine("LanguageService agent: Update typed info - failed")
                      ParseAndCheckResults.Empty
                      
                reply.Reply results
              with exn -> Debug.WriteLine( sprintf "LanguageService agent: Exception: %s" (exn.ToString()) )
          })
  
    static member IsAScript fileName =
  