anchor.diff:      let deepLevel = "FSharp.workspaceModePeekDeepLevel" |> Configuration.get 2 |> max 0
   
       let getInWorkspace () =
  -        loadedProjects |> Map.toList |> List.map snd
  +        loadedProjects |> Seq.toList |> List.map (fun n -> n.Value)
   
       let tryFindInWorkspace (path : string) =
  -        loadedProjects |> Map.tryFind (path.ToUpperInvariant ())
  +        loadedProjects |> Seq.tryFind (fun n -> n.Key = path.ToUpperInvariant ()) |> Option.map (fun n -> n.Value)
   
       let updateInWorkspace (path : string) state =
  -        loadedProjects <- loadedProjects |> Map.add (path.ToUpperInvariant ()) state
  +        // loadedProjects <- loadedProjects |> Map.add (path.ToUpperInvariant ()) state
  +        loadedProjects.Add ((path.ToUpperInvariant ()), state)
   
       let isIgnored (path: string) =
           let relativePath = node.path.relative (workspace.rootPath, path)
  
positive.code:         promise {
              let! dotnet = Environment.dotnet
              match dotnet with
              | Some dotnet -> return Process.spawnWithShell (sprintf "\"%s\"" dotnet) "" cmd
              | None -> return! Promise.reject "dotnet binary not found"
          }
  
  
negative.code:         | Projects // send to FSAC multiple "project" command
          | WorkspaceLoad // send to FSAC the workspaceLoad and use notifications
  
      let private emptyProjectsMap : Dictionary<ProjectFilePath,ProjectLoadingState> = Dictionary()
  
      let mutable private loadedProjects = emptyProjectsMap
  
  