anchor.diff:                              tracefn "Still downloading from %O to %s (%d kbit/s, %s %%)" !downloadUrl targetFileName speed percent
                               readSinceLastMeasure <- 0L
                               lastSpeedMeasure.Restart()
  -                        // if there is no response for a minute -> abort
  -
  -                        let s = System.Threading.CancellationTokenSource.CreateLinkedTokenSource(tok)
  -                        s.CancelAfter (60000)
  -                        let! bytes = httpResponseStream.ReadAsync(buffer, 0, bufferSize, s.Token) |> Async.AwaitTaskWithoutAggregate
  -                        //let! bytes = httpResponseStream.AsyncRead(buffer, 0, bufferSize)
  +
  +                        // if there is no response for streamReadWriteTimeout milliseconds -> abort
  +                        let! bytes = httpResponseStream.ReadAsync(buffer, 0, bufferSize, streamReadWriteTokenSource.Token) |> Async.AwaitTaskWithoutAggregate
                           bytesRead := bytes
  -                        do! fileStream.WriteAsync(buffer, 0, !bytesRead, tok) |> Async.AwaitTaskWithoutAggregate
  +                        do! fileStream.WriteAsync(buffer, 0, !bytesRead, streamReadWriteTokenSource.Token) |> Async.AwaitTaskWithoutAggregate
                           readSinceLastMeasure <- readSinceLastMeasure + int64 bytes
                           pos <- pos + int64 bytes
   
  
positive.code:                     let mutable readSinceLastMeasure = 0L
  
                      let requestMsg = new HttpRequestMessage(HttpMethod.Get, downloadUri)
                      let! responseMsg = client.SendAsync(requestMsg) |> Async.AwaitTask
                      match responseMsg.StatusCode with
                      | HttpStatusCode.OK -> ()
                      | statusCode -> failwithf "HTTP status code was %d - %O" (int statusCode) statusCode
  
                      let! httpResponseStream = responseMsg.Content.ReadAsStreamAsync() |> Async.AwaitTask
  
                      let bufferSize = 1024 * 10
                      let buffer : byte [] = Array.zeroCreate bufferSize
  
negative.code: open Paket.NuGetCache
  open Paket.PackageResolver
  open System.Net.Http
  open System.Threading
  
  type NuGetContent =
      | NuGetDirectory of name:string * contents:NuGetContent list
  