anchor.diff:          ] 
         )
   
  -  member this.refreshAuthCode(creds:Credentials) = 
  +  member this.refreshAuthCode(creds:Credentials) =
       this.doAuthRequest(
         [ "refresh_token", creds.RefreshToken
           "client_id", secrets.client_id
           "client_secret", secrets.client_secret
  +        "scope", scope
           "grant_type", "refresh_token"
           ]
         )
  -    +      
positive.code: 
  open System
  open System.Collections.Specialized
  open System.Web
  
  open FSharp.Data.Json
  open FSharp.Data.Json.Extensions
  
  type AuthClient(secrets:Secrets, scope:string) = 
    let encodeQueryString (nvs:(string * string) seq) =
      String.Join("&", [for n,v in nvs -> (sprintf "%s=%s" n (HttpUtility.UrlEncode v))])
  
  
negative.code:                 "state", ""
                  ]
      u.ToString()
      
    member this.doAuthRequest(parameters) = Async.StartAsTask <| async {
      let postBody = toNameValueCollection parameters
      let postBody = new Http.FormUrlEncodedContent([for name,value in parameters -> new KeyValuePair<_,_>(name,value)])
      let! response = Async.AwaitTask <| httpclient.PostAsync(secrets.token_uri, postBody)
      let! responseBody =  Async.AwaitTask <| response.Content.ReadAsStringAsync()
      return Credentials.FromJson(responseBody)
      }
  
    member this.exchangeAuthCode(code) =
      this.doAuthRequest(
        [ "code", code
          "client_id", secrets.client_id
  