anchor.diff:      |> AsyncSeq.takeWhileInclusive (fun resolution ->
         match resolution with
         | Resolution.Failure f ->
  -        log("backtracking due to failure " + f.ToString()|>text, LoggingLevel.Debug)
  +        log("Backtracking due to failure " + f.ToString() |> text, LoggingLevel.Debug)
           false
         | _ -> true
       )
  
positive.code:       else
          let totalDeps = state.Constraints |> Map.count
          let satisfiedDepsCount = totalDeps - (unsatisfied |> Seq.length)
          log( ("resolved " |> text) +
            (satisfiedDepsCount.ToString() |> highlight) +
            (subtle "/") +
            (totalDeps.ToString() |> highlight),
  
negative.code:             | x -> state.Constraints.[f.Package].Contains x
            then resolution
            else
              log("Trying different resolution to workaround: " + f.ToString()|>text, LoggingLevel.Info)
              // we backtracked far enough, we can proceed normally...
              // TODO: remember f.Package + f.Constraint always fails
              Resolution.Error (new System.Exception (f.ToString()))
  