anchor.diff:    entries
     |> Seq.map (fun (l, deps) -> (packageLock l, lock deps))
     |> Map.ofSeq
  -
  -
   
   type TestingSourceExplorer (cookBook : CookBook, lockBook : LockBook) =
     interface ISourceExplorer with
  
positive.code:   Assert.Equal ("1", getLockedRev "a" solution)
    Assert.Equal ("2", getLockedRev "b" solution)
    Assert.Equal ("1", getLockedRev "c" solution)
    ()
negative.code: 
  
  let solve (partial : Solution) (cookBook : CookBook) (lockBookEntries : LockBookEntries) root style =
    let lockBook = lockBookOf lockBookEntries
    let console = new ConsoleManager(LoggingLevel.Silent);
    let context : TaskContext = {
      Console = console;
      DownloadManager = DownloadManager(console, "/tmp");
      GitManager = new GitManager(console, new GitCli(console), "/tmp");
      SourceExplorer = TestingSourceExplorer(cookBook, lockBook)
    }
  
    Buckaroo.Solver.solve
      context partial
      root style
      (lockBook |> Map.tryFind (packageLock ("root", 0)))
  
  let getLockedRev (p : string) (r: Resolution) =
    match r with
  