anchor.diff:          let! msg = self.Receive ()
           match msg with
           | Worker.Retire ->
  -          manager.Post(Manager.WorkerDone)
             return ()
           | Worker.Do ->
             match command with
             | Process uri ->
  -            doit uri |> ignore
  +            let results = doit uri
  +            manager.Post(Manager.WorkerDone results)
             return! loop ()
         }
       loop ())
  
positive.code: 
  let newManager () : actor<Manager> =
    actor.Start(fun self ->
      let rec loop (workers : actor<Worker> list) maxWorkers activeWorkers =
        async {
          let! msg = self.Receive ()
          match msg with
          | Manager.Initialize (sendData, command) ->
            //build up a list of all the work to do
            let workers = [ 1 .. sendData.NumberOfRequests ] |> List.map (fun id -> newWorker id self command)
            let maxWorkers = sendData.MaxWorkers
            let activeWorkers = 0
            let remainingWorkers, activeWorkers = haveWorkerWork workers maxWorkers activeWorkers
            return! loop remainingWorkers maxWorkers activeWorkers
          | Manager.WorkerDone ->
            let remainingWorkers, activeWorkers = haveWorkerWork workers maxWorkers (activeWorkers - 1)
            return! loop remainingWorkers maxWorkers activeWorkers
        }
      loop [] 0 0)
  
  let getManager managers jobId =
    let maybeManager = managers |> List.tryFind (fun (jobId', _) -> jobId' = jobId)
  
negative.code:     let rec loop (managers : (Guid * actor<Manager>) list) =
        async {
          let! msg = self.Receive ()
          let uri = "http://localhost/"
          match msg with
          | Send sendData ->
            let manager, managers = getManager managers sendData.JobId
  