anchor.diff:                          yield Tokens.LineDetail(line.LineNumber, line.Offset, readOnlyDoc.GetTextAt(line.Offset, line.Length)) ]
                   let tokens = Tokens.getTokens lineDetails fileName defines
                   doc.Tokens <- Some(tokens)
  +                LoggingService.LogDebug ("FSharpParser: Tokens processed for: {0}", shortFilename)
               with ex ->
                 LoggingService.LogWarning ("FSharpParser: Couldn't update token information", ex)
   
               //Get all the symboluses now rather than in semantic highlighting
               LoggingService.LogDebug ("FSharpParser: Processing symbol uses on {0}", shortFilename)
   
  -            /// Format errors for the given line (if there are multiple, we collapse them into a single one)
  -            let formatError (error : FSharpErrorInfo) =
  -              // Single error for this line
  -                let errorType =
  -                    if error.Severity = FSharpErrorSeverity.Error then ErrorType.Error
  -                    else ErrorType.Warning
  -                Error(errorType, String.wrapText error.Message 80, DocumentRegion (error.StartLineAlternate, error.StartColumn + 1, error.EndLineAlternate, error.EndColumn + 1))
               parseResults.GetErrors() |> (Seq.map formatError >> doc.AddRange)
               let! allSymbolUses = parseResults.GetAllUsesOfAllSymbolsInFile()
               allSymbolUses |> Option.iter (fun symbolUses ->
  
positive.code:         let shortFilename = Path.GetFileName fileName
          LoggingService.LogDebug ("FSharpParser: Parse starting on {0}", shortFilename)
  
          let isObsolete filename version (token:CancellationToken) =
              SourceCodeServices.IsResultObsolete(fun () ->
                  let shortFilename = Path.GetFileName filename
                  try
                      if not token.IsCancellationRequested then
                          match MonoDevelop.tryGetVisibleDocument filename with
                          | Some doc ->
                              let newVersion = doc.Editor.Version
                              if newVersion.BelongsToSameDocumentAs(version) && newVersion.CompareAge(version) = 0 then
                                  false
                              else
                                  LoggingService.LogDebug ("FSharpParser: Parse {0} is obsolete type check cancelled, file has changed", shortFilename)
                                  true
                          | None ->
                              LoggingService.LogDebug ("FSharpParser: Parse {0} is obsolete type check cancelled, file no longer visible", shortFilename)
                              true
                      else
                          LoggingService.LogDebug ("FSharpParser: Parse {0} is obsolete type check cancelled by cancellationToken", shortFilename)
                          true
                  with ex ->
                      LoggingService.LogDebug ("FSharpParser: Parse {0} unable to determine cancellation due to exception", shortFilename, ex)
                      false )
  
          Async.StartAsTask(
              cancellationToken = cancellationToken,
              computation =
  
negative.code: open System.Threading
  
  type FSharpParsedDocument(fileName) =
      inherit DefaultParsedDocument(fileName,Flags = ParsedDocumentFlags.NonSerializable)
      member val Tokens = None with get,set
      member val AllSymbolsKeyed = Dictionary<_,_>() with get, set
  
  module ParsedDocument =
      /// Format errors for the given line (if there are multiple, we collapse them into a single one)
      let private formatError (error : FSharpErrorInfo) =
        // Single error for this line
          let errorType =
              if error.Severity = FSharpErrorSeverity.Error then ErrorType.Error
              else ErrorType.Warning
          Error(errorType, String.wrapText error.Message 80, DocumentRegion (error.StartLineAlternate, error.StartColumn + 1, error.EndLineAlternate, error.EndColumn + 1))
          
      let create (parseOptions: ParseOptions) (parseResults: ParseAndCheckResults) defines =
        //Try creating tokens
          async {
  