anchor.diff:  
                                      module M1 = 
                                          let x = ()
  -                                   open M2 =
  +                                   module M2 =
                                          open M1
                                          open System
                                          let _ = x
       
                                      here "open M1" is relative, but "open System" is not.
                                   *)
  -                                let relativeIdents = ident |> List.map string |> List.toArray
  +                                let relativeIdents = longIdentToArray ident
                                   // Construct all possible parents taking firts ident, then two first idents and so on.
                                   // It's not 100% accurate but it's the best we can do with the current FCS.
                                   let grandParents = 
  -                                    parent 
  -                                    |> List.map string 
  -                                    |> List.toArray
  -                                    |> fun p ->
  -                                        [0..p.Length - 1] 
  -                                        |> List.map (fun index -> p.[0..index])
  +                                    let parent = longIdentToArray parent
  +                                    [ for i in 0..parent.Length - 1 -> parent.[0..i]]
                                   
                                   // All possible full entity idents. Again, it's not 100% accurate.
                                   let fullIdentsList = 
  
positive.code: 
  [<NoComparison>]
  type OpenDeclaration =
      { Idents: Set<Idents>
        DeclRange: Range.range
        Range: Range.range }
  
  type private Line = int
  
  // If "what" span is entirely included in "from" span, then truncate "from" to the end of "what".
  // Example: for ReferenceType symbol "System.Diagnostics.DebuggerDisplay" there are "System", "Diagnostics" and "DebuggerDisplay"
  
negative.code:                 else
                      let usedByCurrentSymbol =
                          Range.rangeContainsRange openDecl.Range symbolRange
                          && (let isUsed = openDecl.Idents |> List.exists ((=) fullName)
                              if isUsed then debug "Open decl %A is used by %A (exact prefix)" openDecl fullName
                              isUsed)
                      (openDecl, used || usedByCurrentSymbol) :: acc, usedByCurrentSymbol) ([], false)
              |> fst
              |> List.rev
  