anchor.diff:  
           let! solution = solutions |> AsyncSeq.tryFirst
           match solution with
  -        | Some s ->
  -          yield s
  -          yield! solutions
  +        | Some _ -> ()
           | None ->
             for error in errors do
  -            System.Console.WriteLine error
               do! resolver.PostAndAsyncReply (fun ch -> MarkBadPath (path, (p, cs), error, ch))
  -            yield Result.Error error
           ()
     }
   
     let solutionCollector resolutions =
       resolutions
       |> AsyncSeq.take (1024)
  -    |> AsyncSeq.takeWhileInclusive (fun x ->
  -      match x with
  -      | Backtrack _ -> false
  -      | _ -> true)
       |> AsyncSeq.filter (fun x ->
         match x with
         | Ok _ -> true
  -      | Backtrack _ -> true
         | _ -> false)
       |> AsyncSeq.take 1
       |> AsyncSeq.toListAsync
  
positive.code:           AsyncSeq.append
              (getHints sourceExplorer state p cs)
              (getCandidates resolver sourceExplorer state selections p cs)
            |> AsyncSeq.cache
  
          let results =
            candidates
  
negative.code: 
  
    let pruneSelections (selections: Map<PackageIdentifier, ResolvedVersion * Solution>) (deps: Set<Dependency>) =
      let rec loop (visited: Set<PackageIdentifier>) (deps: Set<Dependency>) : seq<PackageIdentifier * ResolvedVersion> = seq {
        let notVisited =
          deps
  