anchor.diff:  [<RequireQualifiedAccess>]
   type Resolution =
   | Ok of PackageResolution
  -| Conflict of ResolvedPackage list * Set<PackageRequirement> * Set<PackageRequirement> * (PackageName -> SemVerInfo seq)
  +| Conflict of Set<ResolvedPackage> * Set<PackageRequirement> * Set<PackageRequirement> * (PackageName -> SemVerInfo seq)
       with
       member this.GetModelOrFail() =
           match this with
  
positive.code:             exploredPackages.Add((dependency.Name,version),explored)
              explored
  
      let rec step (filteredVersions:Map<PackageName, (SemVerInfo list * bool)>,selectedPackageVersions:ResolvedPackage list,closedRequirements:Set<PackageRequirement>,openRequirements:Set<PackageRequirement>) =
          if Set.isEmpty openRequirements then
              // we're done. re-check if we have a valid resolution and return it
              let isOk =
  
negative.code:             | true,Resolution.Conflict(_) -> tryToImprove true |> snd
              | _,x-> x
  
      step (Map.empty, Set.empty, Set.empty, rootDependencies)