anchor.diff:  
   type StackPack = {
       ExploredPackages     : Dictionary<PackageName*SemVerInfo,ResolvedPackage>
  -    KnownConflicts       : HashSet<HashSet<PackageRequirement> * ((SemVerInfo * PackageSource list) list * bool) option>
  +    KnownConflicts       : HashSet<HashSet<PackageRequirement> * (VersionCache list * bool) option>
       ConflictHistory      : Dictionary<PackageName, int>
   }
   
  
positive.code:                         PreReleaseStatus.All
  
                  let available = availableVersions |> Seq.toList
                  let allPrereleases = available |> List.filter (fun (v,_) -> v.PreRelease <> None) = available
                  let prereleases = List.filter (isInRange (fun r -> r.IncludingPrereleases(prereleaseStatus r))) available
                  if allPrereleases then
                      Seq.ofList prereleases, globalOverride
  
negative.code:         let compatibleVersions, tryRelaxed =
              if globalOverride then List.toSeq versions, false else
              let compat =
                  versions
                  |> Seq.filter (fun (cache) -> currentRequirement.VersionRequirement.IsInRange(cache.Version,currentRequirement.Parent.IsRootRequirement() |> not)) 
  
              if Seq.isEmpty compat then
                  let withPrereleases = 
                      versions
                      |> Seq.filter (fun (cache) -> currentRequirement.IncludingPrereleases().VersionRequirement.IsInRange(cache.Version,currentRequirement.Parent.IsRootRequirement() |> not))
                  if currentStep.Relax || Seq.isEmpty withPrereleases then
                      withPrereleases, false
                  else
  