anchor.diff:              | _ ->
                   let! items = getNavigableItems(document, options, cancellationToken)
                   let indexedItems = Index.build items
  +                itemsByDocumentId.Remove(document.Id) |> ignore
                   itemsByDocumentId.Add(document.Id, (textVersionHash, indexedItems))
                   return indexedItems
           }
  
positive.code:                      while pos < entries.Count && entries.[pos].StartsWith searchValue do
                           handle pos
                           pos <- pos + 1
                    result.ToArray() }
  
  module private Utils =
      let navigateToItemKindToRoslynKind = function
  
negative.code:     type IIndexedNavigableItems =
          abstract Find: searchValue: string -> INavigateToSearchResult []
  
      let private navigateToSearchResultComparer =
          { new IEqualityComparer<INavigateToSearchResult> with 
              member __.Equals(x: INavigateToSearchResult, y: INavigateToSearchResult) =
                  match x, y with
                  | null, _ | _, null -> false
                  | _ -> x.NavigableItem.Document.Id = y.NavigableItem.Document.Id &&
                         x.NavigableItem.SourceSpan = y.NavigableItem.SourceSpan
              
              member __.GetHashCode(x: INavigateToSearchResult) =
                  if isNull x then 0
                  else 23 * (17 * 23 + x.NavigableItem.Document.Id.GetHashCode()) + x.NavigableItem.SourceSpan.GetHashCode() }
  
      let build (items: seq<NavigableItem>) =
          let entries = ResizeArray()
  
  