anchor.diff:        Project : string
         DraftRelease : Release }
   
  +let rec private retry count asyncF = 
  +    async { 
  +        try 
  +            return! asyncF
  +        with _ when count > 0 -> return! retry (count - 1) asyncF
  +    }
  +
  +
   let createClient user password = 
       async { 
           let github = new GitHubClient(new ProductHeaderValue("FAKE"))
  
positive.code:         return github
      }
  
  let createDraft owner project version prerelease (notes: string seq) (client : Async<GitHubClient>) = 
      async { 
          let data = new ReleaseUpdate(version)
          data.Name <- version
  
negative.code:         let! asset = Async.AwaitTask <| draft'.Client.Release.UploadAsset(draft'.DraftRelease, assetUpload)
          printfn "Uploaded %s" asset.Name
          return draft'
      } |> retry 5
  
  let releaseDraft (draft : Async<Draft>) = 
      async { 
  