anchor.diff:  
   type PackageResolution = Map<PackageName, ResolvedPackage>
   
  +type ResolverStep = {
  +    Relax: bool
  +    FilteredVersions : Map<PackageName, ((SemVerInfo * PackageSource list) list * bool)>
  +    CurrentResolution : Map<PackageName,ResolvedPackage>;
  +    ClosedRequirements : Set<PackageRequirement>
  +    OpenRequirements : Set<PackageRequirement> }
  +
   module DependencySetFilter =
       let isIncluded (restriction:FrameworkRestriction) (dependency:PackageName * VersionRequirement * FrameworkRestrictions) =
           let _,_,dependencyRestrictions = dependency
  
positive.code:                             tracefn "     %O %O was unlisted" exploredPackage.Name exploredPackage.Version
                          step (Inner ((currentConflict,currentStep,currentRequirement), priorConflictSteps)) stackpack compatibleVersions flags 
                      else
                          
                          // It might be that this version is already not possible because of our current set.
                          // Example: We took A with version 1.0.0 (in our current resolution), but this version depends on A > 1.0.0
                          let canTakePackage =
  
negative.code:                             |> Seq.map snd
                              // Ignore packages which have "OverrideAll", otherwise == will not work anymore.
                              |> Seq.filter (fun resolved -> lockedPackages.Contains resolved.Name |> not)
                              |> Seq.forall (DependencySetFilter.isPackageCompatible currentStep exploredPackage.Dependencies)
  
                          if canTakePackage then
                              let nextStep =
  