anchor.diff:  /// [omit]
   let private toCurlArgs param = seq {
       yield (String.Format("-sL -w \"{0}%{{http_code}}{0}\"", Regex.Escape(nl)))
  +    if (param.ConnectTimeout > 0) then yield sprintf "--connect-timeout %i" param.ConnectTimeout
  +    if (param.MaxTime > 0.) then yield sprintf "-m %f" param.MaxTime    
       yield sprintf "-H \"X-HockeyAppToken:%s\"" param.ApiToken
       yield sprintf "-F \"ipa=@%s\"" param.File
       if not (String.IsNullOrEmpty param.Dsym) then yield sprintf "-F \"dsym=@%s\"" param.Dsym
  
positive.code:     ConnectTimeout: int
  
      /// Max time in seconds for the upload
      MaxTime: int
  }
  
  /// The default HockeyApp parameters
  
negative.code:     if not (String.IsNullOrEmpty param.CommitSHA) then yield sprintf "-F \"commit_sha=%s\"" param.CommitSHA
      if not (String.IsNullOrEmpty param.BuildServerUrl) then yield sprintf "-F \"build_server_url=%s\"" param.BuildServerUrl
      if not (String.IsNullOrEmpty param.RepositoryUrl) then yield sprintf "-F \"repository_url=%s\"" param.RepositoryUrl
      yield "https://upload.hockeyapp.net/api/2/apps/upload"
  }
  
  