anchor.diff:          |> Option.map classificationRegistry.GetClassificationType
   
       let classificationChanged = Event<_,_>()
  -    let state = Atom None
  +    let state = Atom NoData
       let cancellationToken = Atom None
       
       let getProject() =
  
positive.code: 
      let getClassificationSpans (snapshotSpan: SnapshotSpan) =
          match state.Value with
          | Some state ->
              // We get additional 10 lines above the current snapshot in case the user inserts some line
              // while we were getting locations from FCS. It's not as reliable though. 
              let spanStartLine = max 0 (snapshotSpan.Start.GetContainingLine().LineNumber + 1 - 10)
              let spanEndLine = (snapshotSpan.End - 1).GetContainingLine().LineNumber + 1
              let spans =
                  state.Spans
                  // Locations are sorted, so we can safely filter them efficiently
                  |> Seq.skipWhile (fun { WordSpan = { Line = line }} -> line < spanStartLine)
                  |> Seq.choose (fun loc -> 
                      maybe {
                          let! clType = getClassificationType loc.Category
                          let! span = fromRange state.SnapshotSpan.Snapshot (loc.WordSpan.ToRange())
                          return clType, span.TranslateTo(snapshotSpan.Snapshot, SpanTrackingMode.EdgeExclusive) 
                      })
                  |> Seq.takeWhile (fun (_, span) -> span.Start.GetContainingLine().LineNumber <= spanEndLine)
                  |> Seq.map (fun (clType, span) -> ClassificationSpan(span, clType))
                  |> Seq.toArray
              spans
          | None -> 
              // Only schedule an update on signature files
              if isSignatureExtension(Path.GetExtension(textDocument.FilePath)) then
                  // If not yet schedule an action, do it now.
                  updateSyntaxConstructClassifiers false
              [||]
  
      interface IClassifier with
          // It's called for each visible line of code
  
negative.code: 
  [<NoComparison>]
  type private ClassifierState =
      | NoData
      | Updating of snapshotSpan: SnapshotSpan
      | Data of snapshotSpan: SnapshotSpan * spans: CategorizedColumnSpan []
  
  type SyntaxConstructClassifier (textDocument: ITextDocument, 
                                  buffer: ITextBuffer, 
  