anchor.diff:                      let user_id = user_info.["id"] |> System.Convert.ToString
                       let user_name = user_info.["name"] |> System.Convert.ToString
   
  -                    return! f_success {Id = user_id; Name = user_name; AccessToken = Option.get access_token; ProviderData = user_info} ctx
  +                    return! f_success {ProviderName = provider_key; Id = user_id; Name = user_name; AccessToken = Option.get access_token; ProviderData = user_info} ctx
                   }
           )
   
  
positive.code: /// <summary>
  /// Result type for successive login callback.
  /// </summary>
  type LoginData = {Id: string; Name: string; AccessToken: string; ProviderData: Map<string,obj>}
  type FailureData = {Code: int; Message: string; Info: obj}
  
  let EmptyConfig =
  
negative.code:             with
                  | OAuthException e -> return! f_failure {FailureData.Code = 1; Message = e; Info = e} ctx
                  | e -> return! f_failure {FailureData.Code = 1; Message = e.Message; Info = e} ctx
          }
  