anchor.diff:          if ts.TokenInfo.ColorClass = FSharpTokenColorKind.InactiveCode then Some UnusedCode
           else None
   
  -    let isAbstractBlockSpan (span: Span) =
  -        typeof<FSharpSyntaxModeInternals.AbstractBlockSpan>.IsAssignableFrom(span.GetType())
  +    let isAbstractBlockSpan (span: Span) = span.Rule = ""
   
       let lineStartsWithAbstractBlockSpan (spanStack: CloneableStack<Span>) =
           if spanStack = null || spanStack.Count = 0 then false
  
positive.code:     let hasSpans (line: DocumentLine) =
          line <> null && line.StartSpan <> null && line.StartSpan.Count > 0
  
      let (|ExcludedCode|StringCode|PreProcessorCode|CommentCode|OtherCode|) (document: TextDocument, line: DocumentLine, offset, length, style: Highlighting.ColorScheme) =
          let docText = document.GetTextAt(offset, length)
          //if docText.StartsWith("#if") || docText.StartsWith("#else") || docText.StartsWith("#endif") then
          if docText.StartsWith("#") then
              PreProcessorCode style.Preprocessor.Name
          elif (hasSpans(line)) then
              if not (lineStartsWithAbstractBlockSpan line.StartSpan)  then
                  if (containsAbstractBlockSpan line.StartSpan) &&
                      (getAbstractBlockSpan line.StartSpan).Disabled  then
                      ExcludedCode style.ExcludedCode.Name
                  elif hasSpans(line) && line.StartSpan.Peek().Rule = "String" || line.StartSpan.Peek().Rule = "VerbatimString" || line.StartSpan.Peek().Rule = "TripleQuotedString" then
                      StringCode style.String.Name
                  elif hasSpans(line) && (line.StartSpan.Peek().Rule = "Comment" || line.StartSpan.Peek().Rule = "MultiComment") then
                      CommentCode style.CommentsMultiLine.Name
                  else OtherCode (style.PlainText.Name, docText)
              elif containsAbstractBlockSpan line.StartSpan &&
                 (getAbstractBlockSpan line.StartSpan).Disabled then
                  ExcludedCode style.ExcludedCode.Name
  
negative.code:                         let span = EndIfBlockSpan()
                          if this.CurSpan <> null && typeof<AbstractBlockSpan>.IsAssignableFrom(this.CurSpan.GetType()) then
                              this.FoundSpanEnd.Invoke(this.CurSpan, i, 0)
                          this.FoundSpanBegin.Invoke(span, i, 6)
                          this.FoundSpanEnd.Invoke(span, i + 6, 0)
                          true
                      elif (this.CurSpan = null || (this.CurSpan <> null && this.CurSpan.Color <> "Excluded Code")) then
                          let spanLength = 
  