anchor.diff:          // Find tootltip using F# compiler service & the identifier island
           let tip =
             // If we're processing an identfier, see if it has any tool tip
  -          if (tokenInfo.TokenName = "IDENT") then
  +          if (token.TokenName = "IDENT") then
               let island = List.rev island
  -            let tip = checkResults.GetIdentTooltip(line + 1, tokenInfo.LeftColumn + 1, lines.[line], island)
  +            let tip = checkResults.GetIdentTooltip(line + 1, token.LeftColumn + 1, lines.[line], island)
               match Async.RunSynchronously tip |> Option.bind ToolTipReader.tryFormatTip with 
               | Some(_) as res -> res
               | _ when island.Length > 1 ->
                   // Try to find some information about the last part of the identifier 
  -                let tip = checkResults.GetIdentTooltip(line + 1, tokenInfo.LeftColumn + 2, lines.[line], [ processDoubleBackticks body ])
  +                let tip = checkResults.GetIdentTooltip(line + 1, token.LeftColumn + 2, lines.[line], [ processDoubleBackticks body ])
                   Async.RunSynchronously tip |> Option.bind ToolTipReader.tryFormatTip
               | _ -> None
             else None
   
  -        if tokenInfo.TokenName.StartsWith("OMIT") then 
  +        if token.TokenName.StartsWith("OMIT") then 
             // Special OMIT tag - add tool tip stored in token name
             // (The text immediately follows the keyword "OMIT")
  -          yield Omitted(body, tokenInfo.TokenName.Substring(4))       
  -        elif tokenInfo.TokenName = "FSI" then
  +          yield Omitted(body, token.TokenName.Substring(4))       
  +        elif token.TokenName = "FSI" then
             // F# Interactive output - return as Output token
             yield Output(body)
           else
  
positive.code: 
  open System
  open System.IO
  open System.Web
  open System.Text
  open System.Collections.Generic
  
  open FSharp.CodeFormat
  open FSharp.CodeFormat.CommentFilter
  
  open Microsoft.FSharp.Compiler
  open Microsoft.FSharp.Compiler.SourceCodeServices
  
  
negative.code:               // way to detect this, but Visual Studio also colors these later)
                yield Token(TokenKind.Keyword, body, tip)
            | _ -> 
                match stringRange, completedStringRange with
                | Some _, _ -> () 
                | None, None -> 
                   let kind = 
                     spans
                     |> List.tryFind (fun span -> span.WordSpan.StartCol = token.LeftColumn)
                     |> Option.bind (fun span -> categoryToTokenKind span.Category)
                     |> Option.getOrElse (Helpers.getTokenKind token.ColorClass)
                   yield Token (kind, body, tip)
                | None, Some { LeftCol = strLeftCol; RightCol = strRightCol } -> 
                    let printfOrEscapedSpans = 
                        spans 
                        |> List.filter (fun span -> 
                            (span.Category = Category.Escaped || span.Category = Category.Printf) &&
                            span.WordSpan.StartCol >= strLeftCol &&
                            span.WordSpan.EndCol <= strRightCol)
  
                    match printfOrEscapedSpans with
                    | [] -> yield Token (TokenKind.String, lineStr.[strLeftCol..strRightCol], tip)
                    | spans ->
                        let data =
                          spans
                          |> List.fold (fun points span ->
                              points 
                              |> Set.add span.WordSpan.StartCol
                              |> Set.add (span.WordSpan.EndCol - 1)) Set.empty
                          |> Set.add (strLeftCol - 1)
                          |> Set.add (strRightCol + 1)
                          |> Set.toSeq
                          |> Seq.pairwise
                          |> Seq.map (fun (leftPoint, rightPoint) ->
  