anchor.diff:              | true,Resolution.Conflict(_) -> tryToImprove true |> snd
               | _,x-> x
   
  -    step (Map.empty, [], Set.empty, rootDependencies)+    step (Map.empty, Set.empty, Set.empty, rootDependencies)
positive.code: [<RequireQualifiedAccess>]
  type Resolution =
  | Ok of PackageResolution
  | Conflict of ResolvedPackage list * Set<PackageRequirement> * Set<PackageRequirement> * (PackageName -> SemVerInfo seq)
      with
      member this.GetModelOrFail() =
          match this with
  
negative.code:                         let newOpen = calcOpenRequirements(exploredPackage,globalFrameworkRestrictions,versionToExplore,currentRequirement,closedRequirements,openRequirements)
                          let selectedVersions =
                              selectedPackageVersions 
                              |> Set.filter (fun p -> p.Name <> exploredPackage.Name || p.Version <> exploredPackage.Version) // do we really need this line?
                          let newSelectedVersions = Set.add exploredPackage selectedVersions
  
                          state := step (newFilteredVersions,newSelectedVersions,Set.add currentRequirement closedRequirements,newOpen)
                          allUnlisted := exploredPackage.Unlisted && !allUnlisted
  