anchor.diff:      |> List.tryHead
   
     let solve (context : TaskContext) (partialSolution : Solution) (manifest : Manifest) (style : ResolutionStyle) (lock : Lock option) = async {
  -
  -    System.Console.WriteLine "aaaa"
  -
       let hints = Map.empty
       //  lock
       //  |> Option.map (fun l ->
  
positive.code:     let sourceExplorer = context.SourceExplorer
      let log = namespacedLogger context.Console ("solver")
  
      let selections = pruneSelections state.Selections state.Root.Dependencies
  
      let manifests =
        selections
        |> Map.valueList
        |> Seq.map (fun rv -> rv.Manifest)
        |> Seq.append [state.Root]
        |> Seq.toList
  
      let locations =
        manifests
        |> Seq.map (fun m -> m.Locations |> Map.toSeq)
        |> Seq.fold Seq.append (Seq.ofList[])
        |> Map.ofSeq
  
      let unresolved = depthFirst selections state.Root.Dependencies |> Seq.toList
  
      System.Console.WriteLine (List.length unresolved |> string)
      if (unresolved |> List.length) = 0
  
negative.code:     //  |> Option.defaultValue Map.empty
  
      let state = {
        Root = Set.union
          manifest.Dependencies
          manifest.PrivateDependencies
        Hints = hints
        Selections = Map.empty
        Locations = manifest.Locations
  