anchor.diff:        |> Set.unionMany
         |> constraintsOf
   
  +
       let manifests =
         selections
         |> Map.valueList
  
positive.code:           then
              yield! step context resolver nextState (node :: path)
  
          System.Console.WriteLine ("Exhausted " + (string p) + (string cs))
          let! world = resolver.PostAndAsyncReply (fun ch -> GetSnapshot ch)
          System.Console.WriteLine (
            world |> Map.toSeq |> Seq.map (fun (pc, ss) ->
              (string pc) + " -> {\n"
                + ((ss |> Seq.map (fun s -> s |> Seq.map string |> String.concat "\n") |> String.concat "\n")
                + "\n}"
  
            )
          ) |> String.concat "\n")
  
  
      // System.Console.WriteLine (unresolved |> List.map (fun (p, cs) -> string p + (string cs) ) |> String.concat "\n")
  
negative.code:           | Result.Ok (_, (location, versions)) ->
              let! lock = sourceExplorer.LockLocation location
              let! manifest = sourceExplorer.FetchManifest (lock, versions)
              let packageConstraints = manifest.Dependencies |> Set.map (fun d -> (d.Package, d.Constraint |> constraintToSet))
  
              world <- (world |> Map.insertWith Set.union (p, cs) (Set [packageConstraints]))
  
              let conflicts =
                manifest.Dependencies
  