anchor.diff:        Visited = Set.empty;
         Locations = manifest.Locations;
         Hints = hints;
  +      Failures = Set []
       }
   
       let resolutions =
  
positive.code:   type Constraints = Map<PackageIdentifier, Set<Constraint>>
  
    type SolverState = {
      Solution : Solution;
      Constraints : Constraints;
      Depth : int;
      Visited : Set<PackageIdentifier * PackageLock>;
      Locations : Map<AdhocPackageIdentifier, PackageSource>;
      Hints : AsyncSeq<Atom * PackageLock>;
    }
  
    type SearchStrategyError =
  
negative.code:   let fetchCandidatesForConstraint sourceExplorer locations package constraints = asyncSeq {
      let candidatesToExplore = SourceExplorer.fetchLocationsForConstraint sourceExplorer locations package constraints
      let mutable hasCandidates = false
      let mutable consecutiveFailures = 0
      for x in candidatesToExplore do
        if consecutiveFailures > 5 then
          yield
            Result.Error (NotSatisfiable {
            Package = package;
            Constraint = constraints
            Msg = "5 consecutive versions didn't have a valid manifest"
          })
        else
          yield!
            match x with
            | Candidate (packageLocation, c) -> asyncSeq {
                try
                  let! lock = sourceExplorer.LockLocation packageLocation
                  do! sourceExplorer.FetchManifest (lock, c) |> Async.Ignore
                  yield Result.Ok (package, (packageLocation, c))
                  hasCandidates <- true
                  consecutiveFailures <- 0
                with _ ->
                  consecutiveFailures <- consecutiveFailures + 1
                  ()
              }
            | Unsatisfiable u -> asyncSeq {
              yield
                Result.Error (NotSatisfiable {
                Package = package;
                Constraint = u
                Msg = "Constraint not satisfiable"
              })
            }
  
      if hasCandidates = false then
        yield Result.Error (NotSatisfiable {
  