anchor.diff:      let rec step (filteredVersions:Map<PackageName, (SemVerInfo list * bool)>,currentResolution:Map<PackageName,ResolvedPackage>,closedRequirements:Set<PackageRequirement>,openRequirements:Set<PackageRequirement>) =
           if Set.isEmpty openRequirements then Resolution.Ok(cleanupNames currentResolution) else
           verbosefn "  %d packages in resolution. %d requirements left" currentResolution.Count openRequirements.Count
  -            
  +        
  +        let conflictStatus = Resolution.Conflict(currentResolution,closedRequirements,openRequirements,getVersionsF sources ResolverStrategy.Max groupName)
  +
           let currentRequirement =
               let currentMin = ref (Seq.head openRequirements)
               let currentBoost = ref 0
  
positive.code:             stillOpen
              |> Seq.head
              |> traceUnresolvedPackage
  
              addToError "  Please try to relax some conditions."
              failwith !errorText
  
  
  let calcOpenRequirements (exploredPackage:ResolvedPackage,globalFrameworkRestrictions,versionToExplore,dependency,closed:Set<PackageRequirement>,stillOpen:Set<PackageRequirement>) =
      let dependenciesByName =
  
negative.code: | Ok of PackageResolution
  | Conflict of Map<PackageName,ResolvedPackage> * Set<PackageRequirement> * Set<PackageRequirement> * (PackageName -> SemVerInfo seq)
      with
      member this.GetErrorText() =
          match this with
          | Resolution.Ok(_) -> ""
          | Resolution.Conflict(resolved,closed,stillOpen,getVersionF) ->
              let errorText = System.Text.StringBuilder()
  
              let addToError text = errorText.AppendLine text |> ignore
  
              let traceUnresolvedPackage (r : PackageRequirement) =
                  addToError <| sprintf "  Could not resolve package %O:" r.Name
  