anchor.diff:              |> Map.ofSeq
           | None -> Map.empty
   
  -    let qualifiedSymbols: (Range * (SymbolAccess * string)) [] =
  +    let qualifiedSymbols: (Range.range * (SymbolAccess * string)) [] =
           allSymbolsUses
           |> Array.map (fun (symbolUse, _) ->
               let r = symbolUse.RangeAlternate
               let fullName = symbolUse.Symbol.FullName
  -            { Start = { Line = r.StartLine; Col = r.StartColumn }   
  -              End = { Line = r.EndLine; Col = r.EndColumn }},
  +            r,
               match longIdentsByLine |> Map.tryFind r.StartLine with
               | Some idents ->
                   match idents |> Seq.tryFind (fun (identRange, _) -> 
  
positive.code:                                            |> List.map (fun idents -> System.String.Join (".", idents))
                                             |> Set.ofList
                                    DeclRange = openStatementRange
                                    Range = 
                                      { Start = { Line = openStatementRange.StartLine; Col = openStatementRange.StartColumn }
                                        End = { Line = moduleRange.EndLine; Col = moduleRange.EndColumn }}} :: acc
                              | _ -> acc) [] 
                      openStatements @ acc
  
  
negative.code:     { Category: Category
        WordSpan: WordSpan }
  
  [<NoComparison>]
  type private OpenDeclaration =
      { Idents: Set<string>
        DeclRange: Range.range
        Range: Range.range }
  
  type private SymbolAccess =
      | FullName
  