anchor.diff:      /// Get information for implementation file      
       let getNavigationFromImplFile (modules: SynModuleOrNamespace list) =
           // Map for dealing with name conflicts
  -        let mutable nameMap = Map.empty 
  +        let names = Dictionary()
   
           let addItemName name = 
  -            let count = defaultArg (nameMap |> Map.tryFind name) 0
  -            nameMap <- (Map.add name (count + 1) (nameMap))
  -            (count + 1)
  +            let count =
  +                match names.TryGetValue name with
  +                | true, count -> count + 1
  +                | _ -> 1
  +            names.[name] <- count
  +            count
           
           let uniqueName name idx = 
  -            let total = Map.find name nameMap
  +            let total = names.[name]
               sprintf "%s_%d_of_%d" name idx total
   
           // Create declaration (for the left dropdown)                
  
positive.code: 
          // Process declarations nested in a module that should be displayed in the left dropdown
          // (such as type declarations, nested modules etc.)                            
          let rec processFSharpNavigationTopLevelSigDeclarations(baseName, decls) = decls |> List.collect (function
              | SynModuleSigDecl.ModuleAbbrev(id, lid, m) ->
                  [ createDecl(baseName, id, ModuleDecl, FSharpGlyph.Module, m, rangeOfLid lid, [], FSharpEnclosingEntityKind.Module, false, None) ]
                  
              | SynModuleSigDecl.NestedModule(ComponentInfo(_, _, _, lid, _, _, access, _), _, decls, m) ->                
                  // Find let bindings (for the right dropdown)
                  let nested = processNestedSigDeclarations(decls)
                  let newBaseName = (if (baseName = "") then "" else baseName+".") + (textOfLid lid)
                  
                  // Get nested modules and types (for the left dropdown)
                  let other = processFSharpNavigationTopLevelSigDeclarations(newBaseName, decls)
  
negative.code:                      | _ -> [])) 
              
              (members |> Seq.map fst |> Seq.fold unionRangesChecked range.Zero),
              (members |> List.collect snd)
  
          // Process declarations in a module that belong to the right drop-down (let bindings)
          let processNestedDeclarations decls = decls |> List.collect (function
  