anchor.diff:      let internal awaitTask = Async.AwaitIAsyncResult >> Async.Ignore
   
       let internal compress (context:IOwinContext) (settings:CompressionSettings) (mode:ResponseMode) =
  +        let cancellationToken = context.Request.CallCancelled
   
           let getFile() =
               let unpacked :string = 
  
positive.code:                     | true -> 
                          if context.Response.Body.CanSeek then
                              context.Response.Body.Seek(0L, SeekOrigin.Begin) |> ignore
                          do! context.Response.Body.CopyToAsync stream |> awaitTask
                      | false -> 
  
                          let canStream = String.Equals(context.Request.Protocol, "HTTP/1.1", StringComparison.Ordinal)
  
negative.code:                         | GZip -> 
                              context.Response.Headers.Add("Content-Encoding", [|"gzip"|])
                              new GZipStream(output, CompressionMode.Compress) :> Stream
                      let! t1 = zipped.WriteAsync(bytes, 0, bytes.Length, cancellationToken) |> awaitTask
                      zipped.Close()
                      let op = output.ToArray()
                      return! context.Response.WriteAsync(op, cancellationToken) |> awaitTask
                  } |> Async.StartAsTask :> Task
  
              | ContextResponseBody(next) ->
  