anchor.diff:  
   
   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 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
  
positive.code:   Assert.Equal ("1", getLockedRev "a" solution)
    Assert.Equal ("2", getLockedRev "b" solution)
    Assert.Equal ("1", getLockedRev "c" solution)
    ()
negative.code:   entries
    |> Seq.map (fun (l, deps) -> (packageLock l, lock deps))
    |> Map.ofSeq
  
  type TestingSourceExplorer (cookBook : CookBook, lockBook : LockBook) =
    interface ISourceExplorer with
  