anchor.diff:              let allUnlisted = ref true
               let state = ref conflictStatus
               let trial = ref 0
  +            let forceBreak = ref false
               
               let isOk() = 
                   match !state with
  
positive.code:                     let newResolution = Map.add exploredPackage.Name exploredPackage currentResolution
  
                      state := step (newFilteredVersions,newResolution,Set.add currentRequirement closedRequirements,newOpen)
                      allUnlisted := exploredPackage.Unlisted && !allUnlisted
  
              !allUnlisted,!state
  
negative.code:                     currentMin := d
                      currentBoost := boost
              !currentMin
  
          let getConflicts() = 
              let allRequirements = 
                  openRequirements
                  |> Set.filter (fun r -> r.Graph |> List.contains currentRequirement |> not)
                  |> Set.union closedRequirements
  
              knownConflicts
              |> Seq.map (fun (conflicts,selectedVersion) ->
                  match selectedVersion with 
                  | None when Set.isSubset conflicts allRequirements -> conflicts
                  | Some(selectedVersion,_) ->
                      let n = (Seq.head conflicts).Name
                      match filteredVersions |> Map.tryFind n with
                      | Some(v,_) when v = selectedVersion && Set.isSubset conflicts allRequirements -> conflicts
                      | _ -> Set.empty
                  | _ -> Set.empty)
              |> Set.unionMany
  
          let conflicts = getConflicts()
          if conflicts |> Set.isEmpty |> not then Resolution.Conflict(currentResolution,closedRequirements,conflicts,getVersionsF sources ResolverStrategy.Max groupName) else
  
          verbosefn "  Trying to resolve %O" currentRequirement
  
  