anchor.diff:      return target
     }
   
  -  let hashCache = MailboxProcessor.Start(fun inbox -> async {
  +  let hashCache = MailboxProcessor.Start (fun inbox -> async {
       let mutable cache = Map.empty
   
       while true do
  
positive.code:   })
  
    let copy source destination = async {
      let! task = hashCache.PostAndAsyncReply(fun ch -> Copy(source, destination, ch))
      return! task
    }
  
    let downloadCache = MailboxProcessor.Start(fun inbox -> async {
      let mutable cache = Map.empty
  
      while true do
        let! (Download(url, replyChannel)) = inbox.Receive()
        match cache |> Map.tryFind url with
        | Some task -> replyChannel.Reply(task)
        | None -> 
  
negative.code:             return destination
            }
            |> Async.StartChild
            
          cache <- cache |> Map.add url task
          replyChannel.Reply(task)
    })
  