anchor.diff:  -spec store(t()) ->
       hope_result:t(ok, oauth1_storage:error()).
   store(#t
  -    { token  = {token, <<Token/binary>>}
  +    { client = {client, <<Client/binary>>}
       , realms = Realms
       }
   ) ->
  -    Key   = Token,
  +    Key   = Client,
       Value = jsx:encode(Realms),
       oauth1_storage:put(?STORAGE_BUCKET, Key, Value).
   
  --spec fetch(token()) ->
  +-spec fetch(client()) ->
       hope_result:t(t(), Error)
       when Error :: oauth1_storage:error()
                   | {data_format_invalid, Data :: binary()}
          .
  -fetch({token, <<TokenID/binary>>}=Token) ->
  -    Key = TokenID,
  +fetch({client, <<ClientID/binary>>}=Client) ->
  +    Key = ClientID,
       case oauth1_storage:get(?STORAGE_BUCKET, Key)
       of  {error, _}=Error ->
               Error
  
positive.code:     ]).
  
  
  -type token() ::
      oauth1_credentials:id(token).
  
  -type realm() ::
      binary().
  
  -record(t,
      { token  :: token()
      , realms :: [realm()]
      }).
  
  
negative.code: -define(STORAGE_BUCKET, oauth1_config:get(storage_bucket_authorization)).
  
  
  -spec cons(client()) ->
      t().
  cons({client, <<_/binary>>}=Client) ->
      #t
      { client = Client
      , realms = ordsets:new()
      }.
  
  