anchor.diff:                    | MemberKind.PropertyGetSet
                     | MemberKind.PropertySet
                     | MemberKind.PropertyGet -> iIconGroupProperty, PropertyDecl
  -                let lidShow, rangeMerge = 
  +                let lidShowAndrangeMerge = 
                     match lid with 
  -                  | _thisVar::nm::_ -> (List.tail lid, nm.idRange) 
  -                  | hd::_ -> (lid, hd.idRange) 
  -                  | _ -> (lid, m)
  -                [ createMemberLid(lidShow, kind, icon, unionRanges rangeMerge m, enclosingEntityKind, isAbstract) ]
  +                  | _thisVar::nm::_ -> Some (List.tail lid, nm.idRange) 
  +                  | hd::_ -> Some (lid, hd.idRange) 
  +                  | _ -> m |> Option.map (fun m -> lid, m)
  +                match lidShowAndrangeMerge with
  +                | Some (lidShow, rangeMerge) ->
  +                    let range = 
  +                        match m with
  +                        | Some m -> unionRanges rangeMerge m
  +                        | None -> rangeMerge
  +                    [ createMemberLid(lidShow, kind, icon, range, enclosingEntityKind, isAbstract) ]
  +                | None -> []
               | SynPat.LongIdent(LongIdentWithDots(lid,_), _,_, _, _, _), _ -> 
  -                [ createMemberLid(lid, FieldDecl, iIconGroupConstant, unionRanges (List.head lid).idRange m, enclosingEntityKind, isAbstract) ]
  +                let range =
  +                    match m with
  +                    | Some m -> unionRanges (List.head lid).idRange m
  +                    | None -> (List.head lid).idRange
  +                [ createMemberLid(lid, FieldDecl, iIconGroupConstant, range, enclosingEntityKind, isAbstract) ]
               | SynPat.Named (_,ident,_,_,r), _ ->
                   [ createMemberLid([ident], FieldDecl, iIconGroupConstant, r, enclosingEntityKind, isAbstract)]
               | _ -> []
  
positive.code:             (Binding(_, _, _, _, _, _, SynValData(memebrOpt, _, _), synPat, _, synExpr, _, _)) =
  
              let m = match synExpr with 
                      | SynExpr.Typed(e, _, _) -> e.Range // fix range for properties with type annotations
                      | _ -> synExpr.Range
              match synPat, memebrOpt with
              | SynPat.LongIdent(LongIdentWithDots(lid,_), _,_, _, _, _), Some(flags) when isMember -> 
                  let icon, kind =
  
negative.code:             |> Array.map (fun (d, idx, nest) -> 
                  let nest = nest |> Array.ofList |> Array.map (fun (decl, idx) -> decl.WithUniqueName(uniqueName d.Name idx))
                  nest |> Array.sortInPlaceWith (fun a b -> compare a.Name b.Name)
                  let nest = nest |> Array.distinctBy (fun x -> x.Range, x.BodyRange, x.Name, x.Kind) 
                  
                  { Declaration = d.WithUniqueName(uniqueName d.Name idx); Nested = nest } )                  
          items |> Array.sortInPlaceWith (fun a b -> compare a.Declaration.Name b.Declaration.Name)
          new FSharpNavigationItems(items)
  